I have included some of the lines from the gpspositions.txt file below in. It looks like it is the (internal) GPS receiver which is not giving correct information. I am going to try JCleek's method of not telling the receiver to turn off and on in between updates.
[26/11/07 11:02:56] $GPGGA,110355.2,5202.424909,N,00505.480278,W,1,03,25.5,5001.5,M,,,,*1A|52.04041515|-5.09133796666667|5001.5|26/11/07 11:02:55
[26/11/07 11:55:12] $GPGGA,115557.0,5104.137831,N,00747.019314,W,1,02,25.5,8117.0,M,,,,*15|51.06896385|-7.78365523333333|8117|26/11/07 11:55:11
[26/11/07 12:24:48] $GPGGA,122532.0,5347.672767,N,00132.509215,W,1,03,25.5,66.0,M,,,,*13|53.7945461166667|-1.54182025|66|26/11/07 12:24:47
[26/11/07 12:33:25] $GPGGA,123408.9,5347.686192,N,00132.476933,W,1,02,25.5,65.5,M,,,,*15|53.7947698666667|-1.54128221666667|65.5|26/11/07 12:33:24
[26/11/07 12:41:56] $GPGGA,124240.0,5347.725821,N,00132.783117,W,1,03,13.0,140.0,M,,,,*2D|53.79543035|-1.54638528333333|140|26/11/07 12:41:55
[26/11/07 12:48:52] $GPGGA,124936.0,5347.749247,N,00132.690435,W,1,01,25.5,140.0,M,,,,*23|53.7958207833333|-1.54484058333333|140|26/11/07 12:48:51
The correct co-ordinates were the ones around 53.7945461166667,-1.54182025 (which was a valid point on my journey - on foot). This co-ordinate is still a good 400m off target however.