Your question assumes that there is something wrong with the controller. It is much more likely that you are using the controller incorrectly, but you haven't posted enough information for anyone to know.
Post your complete circuit diagram, showing how all the power supplies, the Arduino, the motor driver and the motor(s) are connected. Also describe the signals you have sent to PWM and DIR, and post the Arduino program (using code tags (#)). Then perhaps you will get a helpful reply.
Hi, have you got any overload protection for the motor controller, a fuse rated at 10A should be fitted in the supply between the battery and the controller.
From the picture its clear this is a very simple H-bridge controller just using
some logic gates and MOSFET drivers.
Such drivers cannot hold the top MOSFET on indefinitely (only a few ms), so you must use PWM at < 100% duty cycle. If you don't the top MOSFETs lose their
bootstrapped gate supply and drift into the linear region in which they will
rapidly fry.
When stopped the lower MOSFETs should both be on to recharge the
bootstrapped supplies on the MOSFET drivers.
If there is a datasheet for the board it should mention this!
If you want to test the thing safely disconnect motors and connect back-to-back LEDs
with a series resistor in their place, and get it all working without high currents.