Database design for an exam system
At first glance, I see lots of inconsistent naming--Person_ID, but PasswordHash (or worse, SchoolYear_ID). Pick a naming convention, and stick with it. I promise you that your future self with thank you!

On your Classes table, you have a Student_ID column. As far as school goes, many students take one class, so class should have a 1:n relationship with students, not a 1:1 relationship. I'd make a Class_Registration table that contains a class id and a student id.

Also, unless your score can be different that what it ought to be based on your performance (say, a professor giving you a boost), you shouldn't have a StudentScores table. That should be derived from the number of questions you answered correctly.

I don't see any worrisome circular references, so I think you're good on that front.