Just catching up on this thread, this was related to my fields of work when I used to work for a living.
So far as I recall, number portability is still most often implemented by 'onward routing'. That is, the CP who 'owns' the number will always receive calls to that number, even after it has been ported to another CP. If the number has been ported, then that original CP has to 'onwards route' subsequent calls to the subscriber's new CP.
So, to be on the receiving end of such number porting is easy, the other CP has to do all the work, rerouting the call. Likewise, if a CP gets a new customer who brings his number with him, then letting him take his number away again if he walks is easy, all the work is still done by the original CP who allocated the number.
But if a CP allocates one of his own numbers to a subscriber who subsequently walks away, taking the number with him, then that CP has to implement the onward routing himself. It sounds very much like this is what Talk Talk haven't implemented.
There are other more efficient mechanisms for number porting, that avoid the onward routing, and encouraged by OFCOM IIRC. But ultimately, any NP mechanism depends upon the CP supporting the required features and dialogues. If Talk Talk have cut some corners, perhaps using signalling stacks of questionable pedigree, I can see why they'd not be able to 'port' their own numbers to other CPs.