Полагаю, вы уже решили эту проблему, но я столкнулся с аналогичной проблемой и хотел сообщить о своем понимании этой проблемы для будущих пользователей.
Проблема, я полагаю, заключается в том, что вы используете существующий список объектов Customer, извлеченных из БД с использованием определенного DataContext. Затем вы создаете новый DataContext в своем методе, и с этим новым DataContext вы присоединяете объект Address.
Этот объект Address (при условии, что имеет отношение внешнего ключа к Customer) создает новый объект Customer в БД, поскольку DataContext, для которого вызывается SubmitChanges, originalCustomer также обрабатывается как новая запись.
Другими словами, чтобы избежать этих проблем, вы должны повторно использовать существующий DataContext, с помощью которого был выбран список originalCustomer List, чтобы при вставке дочерней записи Address не происходила запись в родительскую таблицу.
Надеюсь, это поможет.