Multicolor Line Follower Guidance

The if statements are based on one stored value.

Are they ?

 Serial.print(left.read());
 if((left.read() > COLORLINETHRESHOLD) && (center.read() > COLORLINETHRESHOLD) && (right.read() > COLORLINETHRESHOLD))

I see 2 calls to the left.read() function and there are more. They may not all return the same value as they are done over a period of time. Call the function once and use the returned value as many times as needed.