как по мне ресайклер тут оверхер) но все просто: оперируй листом и скармливай адаптеру) если в списке all { it.isChecked } то выбирай "выбрать все" и когда с листа пришло изменение, тоже самое проверяй
А вообще это бы просто компаунд вьюхой бахнуть, чую у тебя не один такой компонент будет