The 1PPS pulse from the GPS happens at the one second rollover from 1 second to the next. The timing of this event is very precise. In addition this 1PPS pulse also goes to the MFAM module, which phase locks its internal sample interval time to be precisely and always 1000 samples per second, and​ sets the transition from Fiducial number 999 to Fiducial 1000 happens precisely at the arrival of the next 1PPS pulse (to within 10µS or so).

If you take the Fid number modulo 1000 you will see that the mag data can be time stamped down to the exact millisecond by using the fid number as the number of milliseconds since the last PPS event. In the event that a 1PPS pulse (or series of pulses) don't arrive, the Fid will continue to count up to 2000, then roll over to one. By taking the Fid number Modulo 1000 you can still determine the time since the last missing PPS pulse. In the absence of 1 PPS pulses the timing will drift slowly, but it will be accurate for many seconds. Once the 1PPS pulses resume the timing will become synced up again.

We now know the time to each magnetometer sample from the last 1 PPS event, but which second? This is where it gets a bit tricky. The GPS has to calculate time and location which can take a couple hundred milliseconds, at which time it sends it out in the location time fields of the GGA and RMC strings. The time field in the NMEA strings specifies the exact time of the last​ PPS pulse received. Even though the time information sent is only resolved down to one second you can safely assume there are many more zeros after the 1 second decimal point.

By combining this information (the GPS time in the NMEA strings and the fid number), and compensating for the time delay from the PPS pulse to the NMEA reported time, you will be able to time stamp every magnetometer reading to 10 µS or so.