Oh my, you’ll have a bunch of unneeded checking when the sentence could have been discarded for no fix or bad checksum.
Some GPS modules also put out a bad but valid time from their battery clocks until a position fix is acquired.
Not good if you were logging for a security system or something like that.

The thread isn’t necessarily about GPS, but it’s more or less the same thing.
You might has well make use of the UART if it’s present.

set a character counter to zero
Code:
charbuffer var byte[60]
character var byte
charcount var byte
charcount = 0
receive the serial with hserin with the smallest possible timeout so it will only give you a character if one is present in the buffer

Code:
‘pseudocode

hserin [character,lowesttimeout,timeoutlabel]
charbuffer[charcount] = character
charcount = charcount + 1

if character = enter or linefeed, etc. then
gosub investigate’ investigate the complete sentence and reset charcount
endif

timeoutlabel: