The UIPopupList script uses a UIWidget attached to the same game object for the purpose of figuring out its dimensions. If you happen to have a large invisible widget there, its bottom side will be used by UIPopupList, causing the popup to appear below where you would want it. Check the widget's dimensions.