GPS logger works fine...as long as the serial data coming in isn't valid

It does seem more likely that it's some kind of rounding error in your GPS coordinates. It could be that the X and Y offsets just round off at different points as you move and that makes it appear that you jump +/- the error in the x or y planes.

I'd be inclined to log all the values, both as your extracted and converted numerical values, against the raw string values, and see if there are any differences in the conversion between string > numeric.

You're doing quite a bit of arithmetic with those Floats. Even simple things like dividing by 100 or multiplying by -1 can have results that you don't expect, when working with Floats.