As Phanx stated before, FrameXML is loaded before addons, meaning WatchFrame.lua/.xml and UIParent.lua were ran before your code was evaluated. Thus UIParent.lua ran this line:
Code:
WatchFrame:SetPoint("BOTTOMRIGHT", "UIParent", "BOTTOMRIGHT", -CONTAINER_OFFSET_X, CONTAINER_OFFSET_Y);
(see the link from Phanx above)
So, you either call WatchFrame:ClearAllPoints() and then use WatchFrame:SetHeight(300) or you overwrite the BOTTOMRIGHT anchor and do the math for the height you want (WatchFrame:GetTop() - WatchFrame:GetBottom())
Apart from that, as Phanx said, and you quoted, you don't need your WatchEvent frame and wait for PLAYER_ENTERING_WORLD.
I'm sorry that my previous explanations proved misleading or wrong, I didn't take all aspects into account and just aimed at minimal code. Please accept my apologies.