Indeed; Gosub is being used where an IF block would be used in good practice. Here is the good way of programming your questions from now on, although this is just a step in the right direction, there is still something wrong which I will leave you to figure out:
VE1answer as string
Input "Enter Answer: ";VE1answer
Cls
If lower$(VE1answer) = "bilbo"
Print "Correct"
Else
Print "Wrong - Try Again"
EndIf
Wait Key
End
Only one CLS command is used outside of the IF branch because only the instructions dependent on the answers go inside the IF branch, or the Else branch.
This is the same for all structured programming instructions; depending on the logic, context and input; what follows is enclosed in a block of code.
Use sub routine GOSUB calls for just that; to run a routine subjected to a major section of code; not as a way of delegating small instructions.
There is a problem with your code and my example that I have not pointed out; do you know what it is? I will give you a hint;
'Try again?'