Весь код править не буду - не понятно и не интересно.
Основные ошибки:
Если массив начать заполнять с С3, то ячейка С3 это не arr(i, 3), а arr(i, 1).
После заполнения
[vba]Код
Me.myColumn1.List = .Keys
[/vba]
вы его тут-же убиваете
[vba]Код
myColumn1.RowSource = "План!c3:c10000"
[/vba]
Далее задаете источник строк для myColumn6
[vba]Код
myColumn6.RowSource = "План!al3:al10000"
[/vba]
в результате чего возникает ошибка в строке
[vba]Код
Me.myColumn6.List = .Keys
[/vba]
Дальше не полез.
PS данная форма была написана для создания связанных списков с уникальными. В вашем случае нужно не это, а что-то другое.