When attempting to assign a UserProfile property, SharePoint does some character escaping. One of the things it does is convert tab-character to 	. The problem is that the allowed values for a ChoiceList do not have this escaped sequence. The result is that the assignment of the value fails with an exception, because it does not match any of the allowed ChoiceList values.
So: Don’t use tabs in ChoiceList values!