Состояние "checked" для чекбокса хранится вроде бы вверху в items, а вроде бы и внутри Checkbox, внутри чекбокса он первый раз берёт checked снаружи, а потом то что внутри него и что бы дальше снаружи не происходило, это не будет влиять.
Стоит не хранить checked внутри компонента checkbox, а только передавать ему checked
К тому же на onchange чекбокса всегда вызывается
setIsCheckedCheckbox(false);
независимо от того, был он чекнут или анчекнут