Hello!
I would like to help you with this task.
I suggest you to use OpenVPN, it's strong, flexible and good VPN protocol.
Also if you want I can suggest you using pfSense instead of Linux command line router. If you have so many networks, it's much easier to manage them through pfSense web interface.
pfSense is very performance, and very flexible router. It can be installed on any x86 PC. Of course I can help with hardware if needed.
But of course it's not mandatory, we can do it on usual command line Linux.
About my experience:
I have big experience with network administration (VLAN, SNAT, DNAT, iptables, iproute2, multiWAN, tcpdump...), managed switches, routers...
Big experience with virtualization systems: VMWare ESXi, vCenter, MS Hyper-V, Proxmox VE.
Backups and replications for virtualization - Veeam B&R.
A lot of experience with OpenVPN servers/clients. TUN\TAP networks, complex routing for separate clients. Serial connection 2,3 servers for more security. OpenVPN over IPv6 and other...
Extensive experience with pfSense routers. I use it in every office in my main job, in my own office, as router on rented servers. What I did with pfSenses: DHCP, DNS, DyDNS, SNAT, DNAT, 1:1 NAT, Destination\Source routing, Carp (2 hardware pfSenses in failover mode), MultiWAN, gateway groups (failover and load balancing), VLANs, a lot of experience with OpenVPN servers\clients on pfSense.
Hope for cooperation!
Thank you!