Screen coordinates are not local coordinates used by widgets. Local coordinates are just that -- local (relative to parent).
Screen coordinates start in the corner of the screen.
Local coordinates start where the parent is positioned (in case of UIRoot it's the center of the screen).
In your code, you're taking local coordinates, then use WorldToScreenPoint to convert them. They're not world coordinates. Use UIWidget.worldCorners if you need world coorners.