So, I have a resolution. In a nutshell, it was BT's fault.
The service was getting worse and worse so I logged a fault 3 weeks ago. A week and a half ago, it went down completely (even on the HH5). Managed to get 2 OpenReach engineers out yesterday, who spent 3 or 4 hours trying to fix it. Having tested everything, their equipment said everything was OK and then gradually, nothing would connect. So then they swapped the DSLAM port I was on. Should take 15 minutes, but it took 2 hours (at which stage they had left).
However, the good news is that it came up on the HG612 last night at 40 Mb down, 10Mb up. In 3 hours, I transferred 7GB over it (equally split over upload and download) so I'm happy it's working. Tested this evening on the TD-W9970 and it synced within a minute.