La fread ha "memoria", ogni volta che la usi su un file aperto, legge il record successivo.
Il primo studente esaurisce tutto il file degli esami, quindi dal secondo studente in poi il while che legge le informazioni sugli esami riceverà EOF ed uscirà subito.
Per risolvere il problema devi aprire e chiudere il file degli esami per ogni studente.
Devi esercitarti di più perché il tuo codice ha parecchie debolezze che si possono eliminare solo con l'esperienza.
Ciao!