TPS does work, except that companies outside the UK do not feel under any obligation to obey UK regulations. You can't blame TPS for that.
If you have caller display, it will show "number not available" or similar for overseas calls. In this case I usually say "what country are you calling from" repeatedly until they tell me some lie, which I then challenge them on, saying "I can see you're not calling from a UK number, why are you lying to me?"
If a UK company cold-calls you (they shouldn't) you can either say "I am registered with TPS, why are you calling me?" whereupon they usually slam the phone down, OR, if you are feeling vindictive, you can so "Really? That's interesting. I might be interested in that. What's the name of your company?" (if it sounds a bit like a genuine company e..g. Barclays Research, say, "is that part of Barclays Bank?" write it down) "And where did you get my number?" (write it down, they will tell you some lie)
When you get bored with them, say "As I am registered with the TPS I shall be making a complaint to them, you should not be calling me"
Then dial 1471 and note down the exact time they called you, and their phone no (if not withheld)
then log on to the TPS website and make a complaint.
www.tpsonline.org.uk/tps/index.html
I only did that once, and was very gratified, months later, to be told that the company had been fined.