Issue with sending a packet containing "too much information"?

Common issue - you've ensured that you have two characters to read and then you read four:

    while (Serial.available() < 2);
    
    leftSpeed = Serial.read();
    rightSpeed = Serial.read();
    crab_left = Serial.read();
    crab_right = Serial.read();