By changeing the value from 9800 to 38400 it causes the checksum to change. From http://www.d-media.com.tw/english/3p...er/SDGPS-l.pdf it looks as if the checksum should be 3D instead of 0C for 38400.
I have heard that sometimes the recievers don't like to switch protocols and baud rate at the same time, so switching first to 38400 NMEA (i think that is what you are trying to do) and then sirf seems like a good way to go.
Another suggestion i saw elsewhere (can't figure out where now) when the battery ran out was to use GPSViewer to force a cold start. Of course that had more to do with picking up satalites, but i figure it couldn't hur to try.
Hope something here was helpful.