Follow-up: I'm pretty sure it's dodgy hardware on my iPhone because:
a) Today I went into Google maps and that also was stuck in the same (wrong) location.
b) I've just remembered that it gets worse, the hotter the phone is.
You can of course use an external Bluetooth GPS receiver. This sounds inconvenient, but presumably you can leave it permanently in your car and powered on, and just continue to use the smartphone as usual, once it's configured to use the Bluetooth GPS (how on earth you do that I have no idea).