Now I think I may see the problem. I will assume your GPS unit sends data at 4800?
Here is a snippet from one of my programs. No 232 chip.
Code:
SERIN2 PORTB.1,16572,[WAIT("$GPGGA"),WAIT(","),DEC2 H,DEC2 M,DEC2 S,_

        WAIT(","),DEC2 ND,DEC2 NM,WAIT("."),DEC3 NMD,WAIT(",N,"),_

        DEC3 WD,DEC2 WM,WAIT("."),DEC3 WMD]