I think it may be something to do with the adjustment of Latitude and Longitude to locate the centre of the sub-square. I thought that the basic calculation gives the bottom left had corner of the sub-square; if that's incorrect then there's room for errors. I'll see if I can find out exactly how to adjust. If I remove the adjustments, then the distances seem to increase by 1Km.
EDIT: I think I've found the problem, I got the adjustments the wrong way round. They should be:
' Adjust to the centre of the Sub-Square
dblLong = dblLong + CDbl(2.5 / 60)
dblLat = dblLat + CDbl(1.25 / 60)