раздели на два цикла , так как у тебя в цикле идёт сразу и проверка и функия установки дисейблов,
в итоге пока цикл не наберёт нужно значение дисейблов , у тебя условия на установку не срабатывает ,
вначале пройдись посмотри сколько уже установлено , а потому уже по циклу устанавливай дисейблы,
ну или в цикле отслеживай у кого нет дисейблов собирай в массив и после циклом пробегись по этому циклу и поставь дисейблы.