Don’t know if this is any use to anybody but here is a C# NMEA parser I wrote - It was written for normal .Net but the only thing which should be incompatible is the Serial stuff in the test project and the use of string.IsNullOrEmpty which is easily fixed. It may be a bit slow for a microcontroller but it is a start for you.
There are two messages which are parsed $GPRMC and $GPGGA, but it is easily extended. (Those messages should contain everything that most people will need.)
Ideally it should use message pooling, but I’m unsure how to do pooling with inheritance so any advice on how to improve that would be greatly welcomed.
I couldn’t find an upload button on the code site and didn’t think it was finished enough for that, so here it is.