You can setup a PIC to record to the SD card directly. But SD requires that you write to it in 512 byte blocks. Since most PICs have under 300bytes of ram, this is too much for normal PICs. I recommend using an ARM or the common work around is to use an external SPI EEPROM or I2C EEPROM to temporarily store the GPS data until you hit a 512 block and then record this block to SD. Not great, but we’ve based a few projects on this pricipal.
Probably this is going to be way over my head. I have a programming background (windows), so this wouldn’t be the hard bit if I decide to dive into it, the hardware bit is what worries me. I would need a lot of help for this.