presumably the child frames (icons) are not allowed outside the parent frame (window)?
if so it should be fairly easy to just anchor them relative to the parents topleft (or any other corner if you want to make it user customisable) so it doesnt matter where the parent gets moved to as the children will stay in a relative position at all times.
should be same all the way up the chain (depending on how deep you nest the frames)
you just have to have code in <OnDragStop> to record where the frames new position is when its moved, along with code to keep it whooly inside its parent frame, and every time you draw the frame (child or parent) you need to set the anchor again. it just means storing all the anchor points in your savedvariables (which youre probably doing anyway)
the oddity may be due to scaling, if youre ui is scaled and your frames are scaled then its no longer a 1-1 mapping. eg 10 "pixels" on the worldframe may not equal 10 "pixels" in your frame if their scales are different.
couldnt you just have the parent frame be moveable and anchor all the children to that (children are not moveable) - the drag/clicks should pass straight through the children to the underlying parent and it'll move, with the anchored children moving with it. (at leasts thats what i do - via xml though not code - and it seems to work)
(you may need to remove the mouseable from the child frames as well)
you may need to resize the parent frame if the child frames are dynamically resized, otherwise your clickable area gets out of whack - i also add a texture to the parent frame (as a background) the child frames have no background texture applied
btw, in your example code the parent frame doesnt have an anchor, a width, or a height, doesnt that cause issues by itself when trying to anchor children to it?