Can't be fixed I'm afraid. The calls come from abroad (in the main) using computers and Voice over Internet Protocol (VoIP). When you set up a call that way you can choose whatever number you like as your originating number, and then that's what gets to your caller display. Trouble is, UK companies also use VoIP, but of course use their company number as originating! So, you can't just block numbers coming into the UK this way. So, it's open shooting season for all scammers to call UK landlines and mobiles!
The only way we as individuals can block this is to buy a call blocking phone or pay for the Do Not Disturb + VIP list from BT at £3.50 per month. This way we can make sure only numbers we actually want to ring the phone get through and all others are rejected.
So far 796 calls have been blocked from my mum's phone using Blacklist and VIP. She gets on average 13 calls per week. Very few on Sat or Sun.