H-bridge mosfets exploding
Look at your gate drives. You're using 3.3 volts, right?

So when you provide 12 volts to the bridge, and drive either side "high" you're only applying 3.3 volts. The p-type gate is seeing -8.7 volts, so it's on, and the n-type is seeing 3.3 volts, so it's on, too. This is called "shoot-through". And yes, this is pretty much guaranteed to let the smoke out. 

What you need is a level shifter on your gate drives to get the gate levels to go from ground to the rail. A simple n-type with a pullup resistor may work OK if your switching frequencies are low enough. Otherwise you need a dedicated circuit. As an example, the Maxim MAX442x gate drivers http://datasheets.maximintegrated.com/en/ds/MAX4426-MAX4428.pdf will do what you want, but there are lots of others out there.

ETA - You don't need to do this for Q15, since its gate is always referenced to ground.

ETA2 - Please ignore the exact wording of "get the gate levels to go from ground to the rail". If you do this, you will also kill the MOSFETs. The reason is that your proposed rail voltage is 24 volts, and the maximum gate voltage for most MOSFETs is 20 volts. So you'll also need to see about limiting the voltage swings of your gate drives. Basically, this means use a different chip than the Maxim's which I suggested, although there are any number of other chips which will do the job. The Maxim's will work just fine for 12 volts, though.