Monster moto shield + Arduino +Pololu 12V, 29:1 Gear Motor Encoder hardware pblm

Hello dear arduino enthusiastics!

I am trying to build a balancing robot with two wheels, using the polulu gear motor as mentioned above. In order to have a strong motor driver,the monster moto shield is used in this project. Here is the components and datasheets which is used.

datasheets:

http://www.robotshop.com/media/files/pdf/datasheet-1443.pdf polulu

Components

Lipo batteries
Arduino saint smart
2x Pololu 12V, 29:1 Gear Motor w/Encoder
Monster moto shield

Now, back to the issue… Well, the first problem I encountered was my motor driver. It keeps getting hot after a while , whenever I use it ( I run 2 motors through 1 driver). And the most frustrating part is that the motors can stop for a while, and then restart again ( suspect a hardware reset here). Is there any way this can be solved?, I have checked the datasheet for the monster moto driver but cant understand whether the components are already on the PCB boad or I manually have to add new components like resisitors,capacitors and etc. Would be glad if you guys directed me on this issue.

Secondly, The other problem I have is that the motors are going fast CW and slow CCW whenever I reverse direction. I have also seen other ppl getting the same problem as I do and wonder why this happen.

Should I add external components ? Then which componenets should I use in order to subdue this problem?

Here are some pictures in order to clearify the problem. Mostly using cables to connect inputs and etc. I would be glad if you wonder something and want me to post more information.

Code

http://pastebin.com/TZTDxCit

regards, Volkan

In addition , open the JPG picture with paint .!!!

The driver should cope and yes it might get hot, but it shouldn't get over 100C. Just being
hot to the touch doesn't mean its a problem necessarily.

Does your motor have symmetrically aligned brushes? If not then it will have a faster direction
of turning, this is quite common for DC motors, but if you are driving through a feedback
loop you shouldn't care, the feedback should swallow it all up (the asymmetry).

Hmm, as you can see from my picture.. I am using normal arduino gauge wires to control the motors. Do you possible think that my wires are to small to drive the motors ?

Here are the specs of the motor:

Key specs at 12 V: 350 RPM and 300 mA free-run, 110 oz-in (8 kg-cm) and 5 A stall.