Antes de tentar salvar o registro relacionado, dá um select nele atribua ao objeto.
Ele faz isso pq ele não considera igual o que está relacionado na base com o que você está tentando salvar.
Ex: Tenho a classe Pessoa e a classe relacionado Conta
Então primeiro eu instancio a classe pessoa, e aí depois em vez de instancia a conta, eu dou um select no banco e atribuo a classe conta.
Aí depois salvo, porém antes de fazer isso verifique se na classe pessoa vc tem uma classe conta e na classe conta se vc tem uma lista de pessoas. Em determinados casos é necessário definir um relacionamento como virtual, não sei bem ao certo, mas aconselho
pesquisar o porque dessa necessidade.