Toll-Free Numbers often need the inbound caller ID to terminate the call properly. Often cell carriers will pass the pilot number of their clients local rate centre instead of their actual number.
This is the wrong inbound caller ID you are seeing on toll free number. The wrong caller ID you're getting would be the mobile telephone switches' aliased phone number being passed instead of the caller ID, often called "pseudo ANI" (Automatic Number Identification). Cell phones calling toll free numbers, or toll-free numbers calling cell phones, or other toll-free numbers will get pseudo ANI. This is always the case with mobile and toll free numbers, and it has been this way since the inception of Caller ID in the mid-1990's. There is no way around this as it's set at the mobile carrier's or the toll free's origination/terminating end.
The reason for this is that Toll Free numbers can have area restrictions applied (They only want calls from certain rate centers). But Cell phones are mobile devices, so are not always calling from your local NPA-NXX. So, if they pass a local ANI (Of the tower you are connected to) your call will complete. A good example of this is CAA, they have numbers for each province and only want calls if you are in that province. But if you are calling from a cell phone while on a road trip, you will want to be able to call your closest CAA.
There is no way around this as none of these are controlled by Thinktel/Distributel Communications.