So the bandwidth to your modem is good. So the problem is bandwidth from your router to your devices.
However, if 5 devices are sharing your router, each of your devices would get one-fifth of the bandwidth. On a 300 Mbps plan, that'd be 60 Mbps for each device.
However (again), through the nature of TCP, you could cut that 60 Mbps in half to 30 Mbps because while a server is sending, a device would be only listening.
If you're getting 18-22 Mbps with 5 active devices, this would be about right.
I would disconnect all devices except 1 to test your wireless signal from the router as well as your bandwidth.