anyway as i said in the begging im an amature in programming and is not my main job. I do it on my spare time and i try to make as simple as possible
you may think your way is as simple as possible but its not , its the hardest way by far.
my way breaks the task up into simple logical blocks , each task can then be solved independently ,and in isolation from the other tasks
the entire project can be built one task at a time

task1
read in nmea scentence
task2
verify crc
task3
identify scentence type
task 4
parse a GPRMC scentence

task4a
process a time field

task4b
process a LAT field
task4c
process a LON field

.....etc

simple small steps