You could use Replace Field Contents with the Calculation option once for each value (in your example, that's 8 times, 4 times to add new values, 4 times to remove old values ) to make this update. Once the update is done, then you can update the values table to match.
Replace Field Contents [no dialog; CheckBoxField ; //Put one of the calculations shown below here]
//Adds new value E in every record that has A
If ( Not IsEmpty ( FilterValues ( CheckBoxField ; "A" ) ) ; List ( CheckBoxField ; "E" ) ; CheckboxField )
//Removes value A from every record in which A has been selected:
Let ( TheList = Substitute ( ¶ & CheckBoxField & ¶ ; ¶ & "A" & ¶ ; ¶ ) ;
Middle ( TheList ; 2 ; Length ( TheList ) - 2 )
Before using Replace field contents, save a back up copy of your file. It can modify every record in your table and cannot be undone.
Before the first Replace Field Contents, do a Show All records to pull all records into your found set so that the Replace Field Contents action will modify every record in your table.
Both of these calculations exploit the fact that values selected in check box value sets are stored as text separated by return characters.
Awesome! Thanks. This worked perfectly!