That character is 0xFF which is the -1 you get when you read a Serial port that isn't ready. Use .available() to check for available characters or save the results of the .read() in an integer and check for -1 before using it as a character.
Try changing this:
if (! usingInterrupt) {
// read data from the GPS in the 'main loop'
char c = GPS.read();
// if you want to debug, this is a good time to do it!
if (GPSECHO)
if (c) Serial.print(c);
}
to
if (! usingInterrupt && GPS.available()) {
// read data from the GPS in the 'main loop'
char c = GPS.read();
// if you want to debug, this is a good time to do it!
if (GPSECHO)
if (c) Serial.print(c);
}