Most, if not all NMEA devices default to 9600, 8 bit, NP.
All NMEA messages (with the exception of images, radar blobs etc) are strictly ASCII, and in most cases human readable messages.
However, all the above is assuming that the device is actually NMEA compliant. A lot of copy/generic/cheapo devices (GPS boards, Sounders, Sensors) are often not strict NMEA. A concern to me is your device is USB based, so therefore using a 'virtual serial port'. Serial ports over USB are challenging, mostly due to the device driver. USB does not actually adjust its 'Baud Rate' aka serial speed, as it maintains its core speed (usually 1,10,100Mbp/s). The 'virtual serial port' is either simulated or encapsulated in the USB protocol.
Anyway to your problem.
Some apps (maybe minterm) connect to the Unix Device driver in a raw format, and what you are seeing is the encapsulated serial protocol. Whereas your pgm gpsmon, is probably 'un-encapsulating (what a lovely word) ' the data stream.
I would approach this problem by first trying to get the source code for gpsmon and understanding how they invoke the system USB driver and process the data stream. Then take this learning to your application. Does the mfg of your GPS modules provide a 'generic driver' ?
As a Plan B', write a script/app that calls gpsmon, and writes the data to a IP Sox Server App, or a file, then your app gets its data from the sox or file. You could also write the data to a RDBMS. Linux/Raspbian has the advantage of being able to run multiple processes at once, and serve these processes data up via IPC. Unlike Arduino apps.
..the only thing worse than a stupid question is a question not asked.