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

Ah you can disregard the dataformat, I was testing something there. It should just be:

char dataformat[7] = "$GPGGA";

The GPGGA is the message id that we are looking for

As far as the baud, is there a chart of baud rates for the different baud settings somewhere?

As far as this code is concerned I don't think that would be the problem because we are using the default settings in the EM406a which is 4800 baud.