Currently Set(x => x.Parent.Child) will store in the underlying dictionary under the key Child rather than Parent.Child so if you then have Set(x => x.Parent2.Child) that will conflict.
I've seen this trip people up multiple times before - it's not intuitive.