First I would try Hserin and Hserout ONLY, because Serin and Serout are software commands and are slower. Besides they do not have any buffer, so I am pretty sure you loose characters from the data stream of the GPS miodule.

If the test passes then I would check the rest.

Ioannis