I have just had to do a similar job. If you haven't worked out your solution, post here again please, and I'll post the details.
For the record and without the code, I have set up a separate general form which has a checkbox for each value (these are all defined). This form is an object of the layer in question.
On that layer's EDITFORM, I set up a button control and an edit control. The button is used to fire up this separate form and set/get the multiple values. The edit control just displays the multiple values encoded as one item, and I mark it readonly in the control's design, and associate it with the right field of the layer. Via the button's onclick event, I call a subroutine which sets up references to the general form's controls, and to the selected layer and the selected record. The last action of this subroutine
is to show the general form.
This fires the general form's "onload" event which calls another subroutine, which retrieves the attribute value I want, decodes it, and sets the values for the checkboxes of the general form. This form is automatically re-displayed with the checkboxes properly set.
To retrieve the new values from the general form, I call another function on the general form's "onok" event. This just gets the values of all the checkboxes, and encodes them into a single value. I then assign this value to the edit control's value with (effectively)
Map.SelectionLayer.Forms("EDITFORM").Pages("PAGE1").Controls("Edit1").Value = <my value>
This is all horribly convoluted. I had hoped to use just a button control in the EDITFORM, but I could not work out how to save the changed value. The command "Map.SelectionLayer.Update" in the general form would not save the value.
I also thought of just using an edit control, where I fired up the general form via the edit control's "onchange" event. Unfortunately, although I could get my general form to display and work, when I closed it, the value in the edit control changed again, firing up the general form yet again - I could not see how to work around this double display.