Поскольку вы не меняете объект, вы назначаете новый объект переменной.
Вам необходимо присваивать полям одно за другим (или InsertOnSubmit ... но это создаст новый объект в базе данных, и это не будет похоже на то, что вы хотите сделать).
Этот подход будет работать, если вы присваиваете вновь созданный объект полю поля, о котором знает LINQ to SQL, но, опять же, это будет создание нового объекта, а не изменение того, на который ранее указывало поле to (что может привести к куче строк мусора в вашей базе данных, если вы никогда не избавитесь от них).