I think the issue is that terms set using form api are not recognized by the TagUI.
Using a dialog button, I trigger form api code that sets an MT enabled field to have the term "Visitors".
var item = IWDatacapture. getItem("/Asset_metadata/English/eng_audience");
var optarr=new Array();
optarr[0]=new Option('Visitors', 'MTS::KI5MFIC4S');
item.setOptions(optarr);
I save and close and check the properties and see that "Visitors" and it's associated UID are saved as EAs.

When I tag that file for the 2nd time, the term "Visitors" is gone. It looks to me like what's set using form api doesn't stick.
If I trigger the code to put "Visitors" into the field again, then click "Add/Edit", then I just highlight the Visitors term and click OK, the term seems to be somehow blessed and will appear the next time I tag the file.

Notice, I'm not adding or removing any terms manually, I just highlighted the term that was programatically set in the Add/Edit pop up. So the TagUI is reading some other info, not just the existing EAs when tagging a file. What is it that I'm missing?