Hmmm, I changed this:
while(mySerial.available() == 0);to this:
while(mySerial.available() <= 0);
That change had no affect at all, since the available() function returns the number of bytes in the buffer, and there can not be fewer than 0 bytes in the buffer.
I don't know what the other junk is. Is it normal for devices like this to spit out junk data like that?
Normally, devices do not spit out random junk. The data means something, even if that is not apparent to you. Try printing a space after each value, so you can see where the values break. 6655 could be 6, 6, 5, 5 or 66, 5, 5, or 6, 65, 5, or 665, 5, or a number of other combinations.