After much hacking it appears the answer is that grails is looking for a marker field with the name:
groups[0]._isHidden
rather than
_groups[0].isHidden
which is actually what the g:checkBox
tag generates. See GrailsDataBinder.java:911 see propertyStartsWithFieldMarkerPrefix(PropertyValue pv, String fieldMarkerPrefix) for confirmation
If you are interested I've uploaded the test project for this question to gitub.com
Gareth Davis
2010-05-30 20:41:40