Char value is 32 bits long?!@?!?

is there a chart of baud rates for the different baud settings somewhere

Probably not, because different software will take different times to do its processing.

Bit time is the reciprocal of the baud rate, so 1 bit at 4800 baud lasts 1/4800 = 208.3us.

It isn't the GPS device that is likely to be at fault; it is more likely your too-short data bit timings.

Just out of interest, why the roll-your-own approach to serial comms, when you could just use the SoftwareSerial library?
It is tested, and already has compensation for the processing overhead per bit (looks to be 50 cycles per bit, or 3us at 16MHz).