A Darlington pair is a BJT driving a second BJT. It is intended to help drive the 2nd BJT into saturation (fully turned-on) when the input current isn't strong enough. (Current into the first BJT is multiplied into the 2nd BJT, turning it on "harder.) A BJT isn't needed in this application, nor will a single BJT work.
Remember that BJTs need current to flow in order to turn on. My guess is that the input to your controller doesn't sink enough current to turn on the BJTs. Here's how I would do it with an NPN and a P-Channel MOSFET.
Connect the Arduino input to the BJT's base resistor. 0 volts at the base will turn off the BJT, which drives the collector to 24 Volts. That puts 24 Volts on the Gate of the P-FET. So that Vgs = 24V - 24V = 0V, turning it off.
When the NPN base is High, the collector is connected to ground, making it (almost) 0V. So now on the P-FET the Vgs = 0V - 24V = -24V, turning it on (fully.)
This circuit should provide your 0 and 24 volt for the controller.
Just make sure the NPN's Vce is rated for >24 volts and the P-FETs Vds > 24 volts and you'll be good.