strange behavior on my first robot with L298

Different motors have different minimum speeds they will start at, I would make the minimum speed a little higher than the highest individual:

void loop()
{
 for (int i =90;i< 250;i++)
{
  MoveForward(i);
  Serial.println(i);
  delay(1000);
  }
}