DavidOConnor:
Here is one problem...while (Serial.available() < 2);
leftSpeed = Serial.read();
rightSpeed = Serial.read();
crab_left = Serial.read();
crab_right = Serial.read();
You wait for two bytes to arrive and then read 4 bytes.
So I have more than one? Which does not surprise me, I am fairly new at this.