Мне кажется оно не сохраняется, потому что его перезаписывает новое значение, которое приходит из программы. Сохранять надо начало цепочки связей, а не середину - иначе всё равно перетрёт новым значением.