Service providers have various means to try to keep their costs low, and one of which can be to get off support calls as quickly as possible. Were I to call your ISP reporting a similar issue with Windows, I’d not be surprised to get referred to Microsoft. The least expensive providers are the most likely to have long wait times and short call times for support, too. TANSTAAFL, etc.
Since you’re not getting the advertised speeds, you can keep what you have for performance, can dig into this for some effort with your current provider support and potentially then with regulators if you can’t reasonably approximate the advertised speeds and feeds, or can switch to a different provider as and where one is available.
I’d start by reverting any changes you’ve made to their defaults, including MTU. Most providers aren’t going to want to tangle with folks with non-default network settings, including MTU size. The technicians will usually had a list of expected settings, and the clients should be configured for that. MTU too large craters performance, too.
MTU will not get you from 0.6 Mbps to 900 Mbps. Not unless your current MTU is, like, 1.
Test some of your gear with different paths too, whether on different networks, either other Wi-Fi networks or a Jetpack or Mifi or other cellular connection. This shows the gear can work at the specified speeds. This is how you divide up the problem and isolate the likely cause.
Remove any VPNs, any add-on security apps, cleaners, or other add-ons, too.
That all the gear is showing the same issues tends to point to routing configuration errors (which could include really creative MTU values), router issues, or ISP cabling issues.
To find the largest MTU, if the ISP technicians or ISP support or ISP website does not provide that data, the following one-line command uses Cloudflare (which will work), but I’d start with pings of the ISP DNS server or ISP gateway router. Something closer than Cloudflare. Given you’re already working with the MTU, you should also already know the DNS server and gateway IP addresses, or it should be visible in your local settings. The following zsh one-liner tests from 1500 to 9000 increasing each test by 500 bytes.
for mtu in {1500..9000..500} ; do ping -c 2 -d -t 2 -s ${mtu} 1.1.1.1; done
I usually wouldn’t mess with the MTU unless the ISP recommends it. Certainly not when first getting going, that is.