Try the BBC iPlayer diagnostic speed test - I find it pretty good, and also as the BEEB have a fast pipe (or lots of them), you will get a 'truer' estimate (plus it does 4 tests of some sort):
It is the reconnection of the router that is causing the IP address to change.
You have such a long telephone line that the ADSL is likely to be less stable, and when its unstable the router will sometimes lose the connection, i.e. the noise swamps the ADSL signal and it will disconnect and reconnect when this happens. The reconnection means your router asks TalkTalk for an IP address and as you have not purchased a static IP address service it very likely will change.
The only way your IP will change is by a disconnection and resync. Do you turn the router/modem off (over night, say), or keep rebooting it? Or does it disconnect/reconnect by itself?
Yes I am a "long way" from the exchange.
I tried to tell the engineers that there is a telephone line from the West Coast of Scotland to America and it does not appear to have a problem with distance!!
I leave the router on overnight and TT change the IP Address themselves!
Sometimes I switch off the router myself and try to get a better speed that way when I turn it back on.