There are many ways to do this. I would recommend a solution based on LDAP for authentication and user management, and NFS for storage.
In the following, I assume that by "Terminals" you do not mean X server forwarding, but actual local sessions. For actual terminal servers the server runs the applications, and the client simply displays the "GUI". More info on that setup here.
That also reminds me: Edubuntu might be worth a look for you.
User management
You need a centralized database to store usernames and passwords. LDAP is one solution for that. It is a database running on your server, and the clients use the linux PAM architecture to connect to it for authentication.
How to set up LDAP
Storage
NFS is a network file system. Simplified, this means that you can mount it over the network, just like a local partition. In a nutshell, it is similar to smb, the windows "shared drives" protocol. In your case, you would mount the user's home directory from the central NFS server after login.
How to set up NFS