DrawCell - это событие, которое происходит каждый раз при отрисовке каждой ячейки. Следовательно, когда ты устанавливаешь значения переменным AR, AC, то при отрисовке, которую ты вызываешь методом Refresh, происходит вызов DrawCell для каждой ячейки. И раз ты заменяешь значения этим переменным, то и закрашиваются у тебя только последние установленные.
Чтобы закрасить нужные ячейки, ты должен иметь возможность в любой момент получить состояние нужной ячейки (закрашивать ей, или нет).
Как уже предложили выше, можешь использовать массив. Который должен совпадать по размерам с таблицей. Т.е. быть двумерным и иметь соответствующее кол-во "строк" и "столбцов". А в методе SetColor ты будешь устанавливать в массив значение, например "-1" или <цвет>. "-1" - не закрашивать, ну а любое значение - закрашивать.