Сохраняй значение isChecked в какой-нибудь булевой переменной и при каждом байндинге устанавливай у чекбокса isChecked в эту булеву переменную.
Это происходит потому что ресайклер переиспользует уже созданные вьюшки. Ты один раз состояние чекбокса поменял, а при переиспользовании уже для другого элемента датасета не обновляешь
Проблема в том, что эта самая булевая переменная меняется в слушателе свитчера) Проще говоря модель слушает свитчер и меняет значение. А свитчер выдаёт ей новое значение, справедливое для 9 вью, а не для 0)