Bistable solenoid unlatching voltage
Your circuit may be working fine, but more by luck than design. A certain amount of energy is required to close or open the solenoid. However the relationship is not a linear function of voltage x time, so applying 24V for 10ms may not be the same as applying 12V for 20ms.

In a solenoid the magnetic force acting on the plunger is determined by the current flowing through the coil and the position of the plunger in the coil. The plunger then moves with an acceleration proportional to the net force applied. Only some of the energy applied to the coil is translated into plunger movement, the rest being lost in coil resistance, eddy currents etc. 

The coil also has significant inductance, which increases as the plunger moves inside the coil. The result is that current will initially rise according the usual L/R time constant, then as the plunger moves the current curve will flatten out and perhaps even decrease (if the plunger moves fast enough), finally rising to its DC value after the plunger reaches full stroke.        



How long to you need to apply voltage to your solenoid for it to fully operate? The datasheet doesn't say. 20ms may be just long enough, or it might be much longer than is required. Applying power for longer than is required does not increase the energy imparted to the plunger, but simply wastes it as heat. So if the solenoid only needed 10ms to operate, applying 24V for 10ms on release would not be half the energy, but about the same. But even if the energy was half, is that what it needs?   

In the case of a latching solenoid, sufficient reverse current must be applied to cancel out the static magnetic holding force until the plunger moves away from the pole face. How much current is required, and for how long? Again the the datasheet doesn't specify. We can only presume that the release current should be about half the operating current. What effect would too much current have? Perhaps, like in a conventional solenoid, it would cause the plunger to be attracted again and stay operated. 

To achieve the required current x time by varying the pulse width you would have to tune it to the electromechanical time constants of the solenoid. You may be lucky and the 10ms you chose is just right. I wouldn't bet on it though... 

Another way to create the specified 12V release voltage could be to insert a resistor (equal to the coil resistance) into one leg of the bridge, to drop the extra voltage. If this is impracticable then you could put a resistor and diode in parallel - or perhaps a 12V Zener diode - in series with the solenoid itself.