Switch not executing some cases

Your problem with reading L1 is that the code executes so fast that the 1 is still being sent when you have read the L and are checking to see if there is another character in the serial buffer.