Compare 2 models including associations, sync changes

How about you create a belongs_to :parent_product relationship on the copy? This way you always have a reference to the original product and from there it’s pretty straightforward to do any comparisons and merging you may want.