You have to use InitializeFromRequest to achieve this functionality.
InitializeFromRequest initialize = new InitializeFromRequest();
// Set the target entity (i.e.,Contact)
initialize.TargetEntityName = "contact";
// Create the EntityMoniker of Source (i.e.,Account)
initialize.EntityMoniker = new EntityReference("account", new Guid("<GUID>"));
// Execute the request
InitializeFromResponse initialized = (InitializeFromResponse)orgService.Execute(initialize);
// Read Intitialized entity (i.e.,Contact with copied attributes from Account)
if (initialized.Entity != null)
{
// Get entContact from the response
Entity entContact = initialized.Entity;
// Set the additional attributes of the Contact
entContact.Attributes.Add("firstname", "abc");
entContact.Attributes.Add("lastname", "xyz");
// Create a new contact
orgService.Create(entContact);
}
https://rajeevpentyala.com/2017/01/26/create-a-child-record-by-copying-mapping-fields-from-parent-using-crm-sdk/