There is not much here in the way of a schematic. Just buy the CMPS03 module for a compass and wire it up to your parallel port. I wrote some code to implement I2C over the parallel port which can be used to read the compass. I will release it in a few weeks.
The speed sensor hooks up to the serial port using a resistor and 12v zener to limit both current and voltage going into the computer. The code here just counts pulses and reads the system timer. Because it's coded in user space, it's not all that accurate and exhibits substantial jitter (most likely it's missing pulses). I need to either rethink the code approach or go the microcontroller route here. An MCU can easily and accurately convert the sensor into something more workable and not bother wasting CPU cycles to do it.
Yes the solution you stated is the target. All the sensors (either raw or modified via MCU) go into the PC and the PC generates a new NMEA stream -- Of course a MCU could do this job too but I'm not planning to do it that way.
All the code I have (RS232, GPS, NMEA) is in VB.Net. I'm truly unfamiliar with .NET still so most of it is fairly rough. The I2C/Parallel reader code is in C (technically C++). I still need to get it into a form that makes it more readily usable in .NET (or just convert it into .NET). Skippy has a thread about implementing a new GPS program and I promised to release my GPS source if he would release the code for his odometer control. I've been trying to promote a more open source atmosphere around here for a while.