Look at what you're doing:
Vector3 v = cameraWorld.camera.WorldToScreenPoint(myWorldObject.transform.localPosition);
You should be using 'position', not 'localPosition'. Not sure what you're doing with the manual height / screen height either... why not just use UIRoot.pixelSizeAdjustment property, or the UIRoot.GetPixelSizeAdjustment(gameObject) function?
Lastly, you make the same mistake again in the end:
myGuiObject.transform.localPosition = cameraGUI.camera.ScreenToWorldPoint(new Vector3(v.x * multiplier, v.y * multiplier, 0));
P.S. NGUI can do all this math for you. Just use transform.OverlayPosition.