Nested Switch/Case duplicate Default cases problem

This code is what I have done to a sketch that was written by someone else along with a Labview program that was meant to be an example of interacting with an arduino via Labview. The example didn't work and I've been messing with it ever since.
mostly I added a lot of Serial.print() to help me see what the code was doing, but the switch in Case 85 is my way of getting around the problem that Serial.parseInt() always returned 0

The commands I send from the Serial Monitor right now with no line ending to avoid any Labview issues.
The commands are I, U, D, and S which of course translate to their ASCII value for the switch.
But the Labview code for a U or D converts a numeric to string and appends it to the U or the D
The D case still shows how that is supposed to work
but when I write a command of "U1" it does not read the U then parse the 1. Things on that front are getting more complex than I understand.
the Serial.read() gets the first part of the command and leaves a value in the serial bus so it loops back around and Serial.read() reads the rest of the data on the bus and usually that results in triggering the default case.
for instance: command of U1 equals 85 then another loop that sees an ASCII value of 204.

EDIT: With the code as is I should say that a command of "D1" does not read the D as ASCII value 68 then go to that case and parse a value of 1 into the variable x. It would go to case 68, put a 0 in variable x, resulting in no change of currentPosition, then it would finish the loop go back to the top and find that Serial.available() is still true and get some nonsense value from the next Serial.read().