Sync property values between Contact, Company and Deal Records

Syncing properties would be great. I’m also thinking in the context of email personalization. For instance the date of a demo. When moving a deal into the demo stage, you could require the demo date field. That get’s synced with the contact and could be included in emails to the contact. I see the challenge here as multiple contacts can be associated with a deal and multiple deals can be associated with a Contact. How do you control which contacts or which deal property syncs?