bug fix with ref values not propagating to values aleady visited

sometimes in deeply nested structures, a new value will be introduced for an option that already has been processed.  That new value needs to be propagated back to the previously processed options.  This code keeps track of the reference values and resets the older options to have them reconsidered for overlays.