This is a problem built into Android. It has been ignored. CNAP is a standard service built into GSM. It is a standard service provided to all Canadian Carriers and now comes with Roger's / Fido value pack including Visual Voice Mail, Call Waiting, etc. I am trying to find the code and its location to patch it into the framework and contacts apps. I have been unable to do so thus far.
The only ROMS that support this feature are Stock ROMS from your Manufacturer who take Android AOSP and build it the way it is meant to work for our phones. The only problem with Stock Manufacturer/Carrier versions of Android is they are rarely ever updated and do not contain the newest security patches. This Name Display Problem is entirely Google's doing (or not doing) and as well all know, we cannot rely on Google to fix these issues. They consider them Minor and often just ignore these issues.
If I find a way to fix it for everyone I will post it.