Note that if you do register multiple accounts (usernames) with the same mail, you can still login OK to all of them (assuming you remember the username) using the username instead of using an e-mail.
If you pass an e-mail to the login form then it logs on to the first account you had created (being the first means that a teacher could make an account for him first using the class e-mail, then make the student accounts with the same e-mail: teacher will be able to login both with username and e-mail and students only with username)
However, since students may not remember their username (neither their teacher) and still need a password reset, the [2] suggestion above is needed, that is to receive list of all your usernames with separate password reset links.
Also helps users who made multiple accounts by accident (registered again with other username cause they weren't sure if they had registered, or didn't remember username) to realize they have multiple accounts ([4] would help in that case, in that they'd ask admin to merge them [could have such a mention that they can ask the admin to merge them maybe in the reset e-mail if it sees they have multiple accounts])
---
</br>Also assuming [1] suggestion above works (that they can reset password giving username instead and reminder to be sent to teacher [so reminder mail should mention then for what username it is]). If not, needs to be implemented (be able to give username at password reminder form instead of email to send reminder mail that would write for what username it is)