Since we're now working with a separate proxy copy of the original node graph, if the user changes a parameter in one of those nodes (triggering an InvalidateCache signal), the values in our copied graph need to be updated with these new values too.
Since nodes are are extremely derivative types, we use a clone/copy function to produce new types of the derived class easily.
This function was written incorrectly and would almost always trigger an infinite loop. It's now written correctly and achieves what's intended.