Because you're not resetting the class anywhere in the code when the player connect/disconnects. The class is stored in the g_Class variable associated with the player's index from 0 to 32. When a player disconnects and another one joins, he can receive the same index that the previous one had so he will inherit the g_Class value for that index.
This has nothing to do with the AMXX version. It's related to the number of people currently in the server and improper loading/saving.