Adding a child to the menu does add the child to a hidden popup menu. As a consequence the parent of a menu child is the hidden popup menu and not the menu. As the parent of the hidden popup menu is null all UlcUtilities methods return null. The parent of the hidden popup menu is not stored in the parent property but in the invoker property.
Check if any utility methods on ULCComponent are affected as well (e.g. ULCComponent.getRootPane()).
We think that Swing's behavior is not intuitive and that a developer expects that for example the root of a selected menu item is always the frame and never the special heavyweight popup menu that Swing uses sometimes (e.g. on Mac or when the popup menu is not completely contained in the frame).