Thanks. That works great.
I've gotten around the problem with random text being entered by calling this from the Validated event on the control. It removes the untokenized text by rebuilding the text from the tokenized elements. The only interesting behavior is that the tokenized elements are alphabetized, so the order of the items may change when the user tabs out of the control. That is not totally undesired in this case.
sender, EventArgs e)
ucRadAutoCompleteBox ctl = (ucRadAutoCompleteBox) sender;
//RadTokenizedTextItemCollection oldItems = ctl.Items;
newText += i.Text +
ctl.Text = newText;