Upon further testing, I found that If I created a duplicate of the repeating field with everything else the same, the error doesn't occur. This is both reassuring and disturbing! Clearly there is something corrupt somewhere - how can one have confidence if the outcome is not certain?
Clicking a check box appends the selected value to any data already present in the field. If there is data in the field that is not a member of the check box's value list, it will remain, invisible on the layout, but visible in the data viewer and also if you put a copy of the same field on your layout but formatted as an edit box instead of with check boxes.
I don't know if was the case here, but it fits what you are describing here if you duplicated the field in manage | Database | fields instead of just copying the existing field on your layout.
Strange behaviour, but I get it now that you've explained this quirk! You are right - that's what happend - I had messed around with testing differnt field values and then changed the thing to a checkbox, etc and the old values stuck, even though there is just a single checkbox value on the list.
Changing the value list's values does not, ever, change the data stored in a field that is formatted with that list.
Radio buttons and checkboxes can hide data if the data in the field does not match a value in the current value list. This is sometimes useful, but a definite "gotcha" for the unwary.