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

True ASCII is only the codes 0..127 (0x00..0x7F).
Somewhere in the spec of your GPS unit it probably says the interface protocol is 7 data bits, odd parity.
If you bitwise-AND with 0x7F (01111111 binary), your incoming characters will have bit 7 (the most-significant bit) set to zero, but all the other bits will remain unchanged.

Truth table for AND:

A B &

0 0 0
0 1 0
1 0 0
1 1 1

[edit]After doing a bit of digging, NMEA is supposed to use eight bits, no parity.
Do all the characters you receive have bit 7 set, or only some?
It could be you have a slight bit-rate mismatch - can you post your sketch? (don't forget to use the Code (#) button )[/edit]