MC works the same way, that is how rendering in 2d works. The thing is - you are drawing your buttons first. the super call in the drawScreen method is what draws the buttons.
That happens because a GuiButton can only have a y size of 20 at most. I do not see where you are setting your button's size above 20 in your class though, have you changed that?
By that I ment to compare your button positioning with vanilla's. You are positioning your buttons based on the positioning of your text fields, and those are not really positioned all that well... they are positioned exactly in the way they are drawn. Some are positioned against the right boundry of the screen
answerB = new GuiTextField(9, this.fontRenderer, this.width - 50, 200, 200, 20);
answerD = new GuiTextField(11, this.fontRenderer, this.width - 50, this.height / 2 + 100, 200, 20);
Some are positioned agains left top corner of the screen
answerA = new GuiTextField(8, this.fontRenderer, 200, 200, 200, 20);
And this one is positioned agains the left x boundry and the middle of the screen
answerC = new GuiTextField(10, this.fontRenderer, 200, this.height / 2 + 100, 200, 20);
If you want the buttons to anchor to the middle of the screen position them agains it. The center is [width / 2, height / 2]. width and height here are scaled width and height of the screen.