Because check/radio use relative path from group->component as their value attribute they will lose value if that path changes. This happens when these components are used in a gridview with itemreuse strategy because the gridview has an intermediate repeater that changes the path
so the path of a check can go from
gridview:2:rowitem:5 where 2 is the id of the item of the intermediate repeater
and this will cause the input value to be lost.
the solution is to use a value attribute that will not change across requests.