Outsource the problem to a hosted VoIP vendor, you will save yourself time, energy and frustration rather than spending $800 only to be dealing with lowest end Grandstream UCM, looming GSM network sunsets, port forwarding, potentially needing static IPs from your ISP, staying on top of system backups, documenting what you have setup, and dealing with the various quirks and bugs of Grandstream's PBXes and how they interact with your Yealink phones and your doorphones.
A competent vendor should deliver a hosted PBX that can meet your organizations needs, and handle firmware updates for the hardware onsite, call routing issues, and take on any support or changes needed on your behalf, allowing you to focus on the businesses other IT needs, rather than chasing Grandstream's helpdesk and forums for answers on how to make their hardware do what you desire.
If your deadset on keeping this in house, get a virtual machine from a vendor like DigitalOcean (or your local equivalent that supports nightly backups), install FreePBX, FusionPBX or the software of your choice, and onboard your phones to this platform. Your monthly cost should end up being less than the power to run your current onsite FreePBX instance ($5 to $12 a month), in the event anything happens your ability to rollback to a known good backup is much easier, and you get a much better PBX to boot.
The pitfalls of self-hosting a PBX on-prem or in the cloud are when you leave for a different firm, are incapacitated or unavailable no one will be able to adjust anything, and the PBX will eventually become a security issue when a vulnerability affects the software stack used and no one updates this oddball server that everyone is afraid to touch.
What country are you in? Is bonding multiple differing circuits not a possibility?
https://www.openmptcprouter.com can handle connection bonding, or you can use a service like Speedify or SpeedFusion (which is just a hosted version of this software) to get a reliable pipe to the internet from multiple unreliable connections.