I've played this game before many times, and it can be several things.
In MY case I am using ISDN PRI for my trunking, which supports ANI information. In my PBX I can assign caller-id digits to each station as I choose. If I enter in a valid 10-digit number that is the number that gets sent out along with a generic company name that is on the account. If I do not enter a valid 10-digit number the number that gets sent out if the circuit ID (SPID) of the PRI trunk.
So in my case if the digits are wrong that is usually my fault.
If the name is wrong that starts out as the provider's fault, but, as they say, they will update their database and correct the problem. When you call customers with your same carrier they should see the normal information. If you call customers who use other carriers it takes time for the data to get updated in all of the other carrier's databases depending on how often they update them - similar to how long it takes changes to spread across the internet. If you want this to go faster it is usually unfortunate in that you need to find out from the customer getting the bad data which carrier provides their phone service and then call that carrier and get them to fix it too.
I have had to do this on numerous occasions and it is always a hassle.