Which is the value of baud1?
serin2 portc.4,baud1,[WAIT("$GPRMC"),STR sms\35]
When you use wait string, remember that they are case sensitive "$GPRMC" is different from "$gprmc"
I already suggested you, in another thread, to use a timeout sequence. Your serin2 instruction will wait for the identifier and then it will wait for a string of 35 characters. If your GPRS will send only 34, serin2 will remain there waiting forever.
One turn around is the use of the timeout:
serin2 portc.4,baud1,500,GPRSTest,[WAIT("$GPRMC"),STR sms\35]
If sms<>0 then goto label ?? ' here you check byte for data presence