Erik, this is possible, you can write a custom dialplan in freeswitch that looks at an channel variable, and sets the caller id number and name based on nested if "conditions"
The freeswitch wiki, and forum is a great place to find some examples, looks like you have started searching it.
There are 3 or 4 different variables that relate the caller id name and number and they differ depending on whether the call is inbound/outbound or bridging out from a conference. So that's why this is probably not working for you.
Also the change requires a reloadxml from fs_cli or a restart to take effect.
When you do change the DID to a name, you still will have 2 entries in the user window for that person.
A more advanced approach is to prompt the user for a pin, and automatically map the DID to the exisiting username based on this pin. There are a few commercial companies that have implemented something like this and you can find them on
bigbluebutton.org support page
regards,