There is no way to change button labels in runtime besides adding Local type queue members with name matching the extension/context defined on a button. So, if in your CRM you can fire a command to add a queue member with name, then it might be possible to do it. Now, if those extensions are queue members "for real" then you will have problems. So:
create a queue, for example queue 777 , it won't be used for any purpose but to add/remove members
modify your crm so when a user logs in it sends a command to asterisk of the type:
asterisk -rx "queue add member Local/1111@from-internal to 777 as CRM_Name"
The button in FOP2 with extension=1111 and context=from-internal will be renamed to CRM_Name
Modify the logout from your CRM so it REMOVES from the queue on logot
So, it is an ugly hack, but might work.