Ajuda modelagem e mapeamento no Entity Framework?

Estou tendo problemas em criar uma solução para essa regra de negócios.

Tenho atualmente 1 Cliente, 1 Correspondente e 1 Loja. Ambos utilizam a mesma tabela de Endereço. Como as tabelas cliente,correspondente e loja não podem ter o Id auto geravel, resolvi usar GUID para não ocorrer erro de duplicidade na tabela Endereço. Nesse caso a tabela endereço deve ficar assim:

EnderecoId - ReferenceId          - Logradouro
1          - GuidDoCorrespondente - Rua tal tal tal
2          - GuidDaLoja           - Rua tal tal tal
3          - GuidCliente          - Rua tal tal tal

Porém estou tendo problemas para mapear as entidades. Segue o modelo que estou tentando fazer:

    EnderecoMap() 
    {

    HasKey(x => x.EnderecoId);

    Property(x => x.Logradouro)
        .IsRequired()
        .HasMaxLength(60);

    Property(x => x.Numero)
        .IsRequired();

    HasRequired(x => x.Correspondente)
        .WithMany(x => x.Enderecos)
        .HasForeignKey(x => x.ReferenceId);

    HasRequired(x => x.Cliente)
        .WithMany(x => x.Enderecos)
        .HasForeignKey(x => x.ReferenceId);

    HasRequired(x => x.Loja)
        .WithMany(x => x.Enderecos)
        .HasForeignKey(x => x.ReferenceId);
    }

Sempre recebo esse erro:

"The INSERT statement conflicted with the FOREIGN KEY constraint \"FK_dbo.Endereco_dbo.Cliente_ReferenceId\". The conflict occurred in database \"Correspondente\", table \"dbo.Cliente\", column 'ClienteId'.\r\nThe statement has been terminated."

Se alguém poder me ajudar agradeceria muito!