You would need to either separate them physically or with VLANs to use separate subnets that would be "partitioned off" so to speak.
To do VLANs, you would need a managed switch that is capable of handling VLANs and 802.1q trunking (most smart/managed switches do). pfSense would get put on a trunk port, and you'd make a VLAN interface in pfSense for each internal network you want. You'd then go in the switch and set which ports belong on which VLAN.
VLANs can be intricate but for basic usage they're really not that difficult, they may seem intimidating but they're very handy if you spend a little time familiarizing yourself with the concepts.
Doing what you want shouldn't be too difficult, especially if you have your Samba server act as a WINS server and set that in the DHCP settings. People could still see each other's machine names when browsing, but if you have firewall rules in place to keep SMB traffic limited to only the Samba server, they wouldn't be able to actually contact any other machine's shares.