it might be in the direction functions as these four are not mirror-symmetrical as one should expect.
try this
int front ()
{
off();
digitalWrite(leftmotor2, HIGH);
digitalWrite(rightmotor2, HIGH);
}
int right ()
{
off();
digitalWrite(leftmotor2, HIGH);
digitalWrite(rightmotor1, HIGH);
}
int left ()
{
off();
digitalWrite(leftmotor1, HIGH);
digitalWrite(rightmotor2, HIGH);
}
int back ()
{
off();
digitalWrite(leftmotor1, HIGH);
digitalWrite(rightmotor1, HIGH);
}