Вы путаете причину и следствие из-за отсутсвия понимания Работы table view.
Это не список, как Вам может показаться, это скорей барабан. Ячейка которая уходит вверх, за пределы области видимости, тут же телепортируется вниз и выезжает от туда(как буд-то вы мешаете колоду карт) По этому то создание и заполнение ячейки в дата соурсе такое "странное". хотя в последних версиях эту сложность скрыли за сахарком. И это нельзя поменять в UITableView, хотя....
Ну так вот, возвращаясь к Вашей проблеме: Вам не нужно увеличивать кэш или разводить костер вокруг ячеек uitableview - это путь в никуда.
Вам просто нужно отделить котлеты от мух.
завести объект или словарь (как предлагает
@ManWithBear), который будет описывать состояние ячейки. так называемую модель. Пример: для ячейки с тремя чекбоксами это будет объект с тремя булевскими свойствами.
Далее, при проклацывании любого из чекбоксов изменять соотвествующее свойство у обьекта (запоминать изменение). А при отображении ячейки вытаскивать это булевское значение и ставить переключатели в нужное значение. И Вы не поверите, но календарь в ios работает именно так, только модель там в coredata'овском ларчике.