'Reorder destination\'s children to the same as source\'s and remove any no longer in source.
Return the removed ones as orphans (a set).'

def _sync_children(self, source_parent, destination_parent, new_child):

    destination_reordered = []
    destination_children = set(destination_parent.fields['children'])
    source_children = source_parent.fields['children']
    orphans = (destination_children - set(source_children))
    for child in source_children:
        if ((child == new_child) or (child in destination_children)):
            destination_reordered.append(child)
    destination_parent.fields['children'] = destination_reordered
    return orphans
