You are using a very low resistor in the collector of the BC546, the collector current will be about 1-2mA , setting this to about 50mA would increase the base current of BD139/140 so that you can get 1-1.5A output.
Also consider to use transistors with higher gain like 2SD882/2SB772
www.unisonic.com.tw/datasheet/2SD882.pdf
www.utc-ic.com/spec/2SB772.pdf
You can also replace BC546 with a mosfet like 2n7000.
I think your gate resistor should be much lower, 47 ohm limits the current to 250mA and you want to achieve fast switching because you have high drain currents.
Also add capacitors very close to the collectors of each BD139/140 to be able to supply the high current pulses fast.
You may need to use some kind of protection for the gate of the upper mosfets because if the 12v power supply is missing for whatever reason then your gates will get 24v which will damage the mosfets.
Also using external diodes across the drain-source of the mosfets would be a good idea.
Alex
---------- Post added at 14:09 ---------- Previous post was at 12:55 ----------
You should also consider using a dedicated high current mosfet driver.
A device like IR2110 can drive the mosfets with higher current, can work with bootstrap to drive the upper mosfet gates correctly and also has protection for the gates.
You may also consider a better mosfet, for example IRL2203, it has slightly lower Rds-on=7m ohm and it is also much easier to drive, the total gate charge is just 60nC (your mosfets has 146nC) so you can get faster switching speed with the same gate current.
Alex