if I understand the code correctly, that can't happen anymore. The PropertyChanged event is only set if e.NewValue is a ValuesContainer, when an event is triggered e.NewValue becomes e.OldValue and another NewValue is created. If that NewValue is not a ValuesContainer the PropertyChanged event is not set.

Also I'm not even sure why the bug I experienced came up, so I want to keep the changes in that method to a minimum until I (or someone else) understands what's going on there exactly.