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.