There should be a break between presale and general sale, 5-15 minute break with "presale sold out general sale starts in 5-15 minutes" page displayed in the period after presale.
That would fix the issue for people purchasing outside of presale but thinking they qualified.
The other issues are everywhere in every competitive sales. It is the quick and the dead and unless some version of secured whitelisting is implemented then it's not correct to "nerf the world".
Changing numbers after the fact is not correct either, even in good faith. It doesn't inspire confidence that the team sticks to it's word in the face of outside pressure.