"If every computer and PLC has different ip address we have to configure them every single time individually."
Nonsense… I have been in countless class be it with real hardware and or VMs where yeah the machines are re-imaged between classes or even on the fly if a student messes up. They sure didn't use the same IPs.
Students where given their specific IPs to use before class, etc. This is the whole point of dhcp where you could hand out specific IPs to the devices as they boot up, etc. If you want your PLCs to be on specific IP and they can not be dhcp.. you could always just but them on a host only network where each host has its own network that is 192.168.x/? with a 2nd nic that way these interfaces could be 192.168.1.1 for PC and .2 for the PLC, etc..
32 VM copies of pfsense? On what each machine?? That just seems nuts!!
How about you give us some more details of the hardware your working with, etc. And we figure out a better way to do it other than 32 VMs running pfsense just so you can put a nat behind them all using 192.168.x