Ага, теперь понятно.
Давайте я попробую объяснить вам на таблицах первого уровня (чтобы не загромождать объяснение), а вы уже сами сделаете то же самое для других таблиц.
Дело в том, что таблица, которая в форме, элемент формы, и таблица, которая в реквизите (ДанныеФормыКоллекция) - это разные таблицы. Это две разные коллекции.
Они, конечно, однозначно связаны между собой. То есть зная строку одной таблицы можно получить соответствующую ей строку другой таблицы.
Но эта связь не такая, как вы ее себе представляете:
ГлавнаяТаблицаЗначений[Элементы.ГлавнаяТаблицаЗначений.ТекущаяСтрока]
ТекущаяСтрока у таблицы в форме это не индекс таблицы в реквизите.
Эти две таблицы связаны через Идентификатор.
У таблицы в форме идентификатор можно получить как раз через текущую строку:
Идентификатор = Элементы.ГлавнаяТаблицаЗначений.ТекущаяСтрока;
У таблицы в реквизите (ДанныеФормыКоллекция) есть метод НайтиПоИдентификатору(Идентификатор), который вернет вам строку, соответствующую текущей строке в таблице формы.
В обратную сторону аналогично. Если вы знаете строку у таблицы в реквизите, вы можете найти (или установить курсор на) строку, соответствующую ей в таблице в форме.
У строки таблицы в реквизите (ДанныеФормыЭлементКоллекции) есть метод ПолучитьИдентификатор():
Идентификатор = СтрокаГлавнойТаблицыЗначений.ПолучитьИдентификатор();
А у таблицы в форме - известное уже свойство ТекущаяСтрока:
Элементы.ГлавнаяТаблицаЗначений.ТекущаяСтрока = Идетнификатор;
Таким образом перед выполнением манипуляций вам нужно узнать, какая строка в таблице реквизита соответствует текущей строке в таблице формы. Каким-то образом запомнить, что это за строка.
После выполнения манипуляций в таблице реквизита вам нужно найти эту запомненную строку, получить ее идентификатор и таблице в форме сказать, что ее текущая строка должна быть равна этому идентификатору.