But I run out of tBTC because of transaction fees.
If you go offline for 20 minutes, and try to generate new coins locally, then you can do that with just a CPU. Which means, that if you have any local network, and all nodes will be connected into that, then you can locally mine some coins, do any tests you want, and then, all of those coins will vanish, when you connect to the real network (but if you treat test coins as worthless, then it is not a problem).
How to do this, esp. architecturally?
If you have any working setup, then it is all about isolating your client from the real network. Then, you can locally mine anything, with minimal difficulty, and then those coins will really be worthless (because coins from the live network are now traded for real satoshis on some exchanges).
Do I need to install some kind of Electrum or Electrum Personal Server?
Yes, you can do that. You can just setup a local WiFi network, have some server there, and if students will connect to your server, then they should see the coins you generate on your CPU.
Instead of messing with regtest, you can use testnet4.
Those coins are also traded on exchanges, so they are no longer worthless. If you need really worthless coins for testing, then you can use regtest, or pick any network, where you have a working setup, and just use minimal difficulty, which is available there. For example: even if you start mainnet, then you can also work with the minimal difficulty, as long as you will ignore the real chain, and start mining on top of the Genesis Block.