@t2clej Just wondering - any particular reason you're want to limit bandwidth per client? If you're just doing it to try and preserve QoS in general, then IMHO implementing fairness queuing and buffer control via something like fq_codel would be way easier, and perhaps even more effective. Ubiquiti has this working out of the box in v. 1.7 in their smart queues feature. Similar results can be had in MikroTik via manual setup of simple queues and/or queue trees (per
this extremely detailed wiki post), but as you can see and as SEM hinted at, it's well beyond the average person's level of comprehension. OpenWRT can also do codel via packages, and run on Atheros commodity gear (like a
WDR3600) -- shaping up to around 75Mb/s. The ER-X should be able to do about double that, perhaps a bit more. Any of the above would be plenty for your current connection speed.
If you still want to limit bandwidth per client, it's also doable with any of the above suggestions, and also pfSense, but codel has not been implemented on BSD yet (to my knowledge), so pfsense is stuck using other methods, similar to MikroTik, which are not quite as "knobless".
In terms of hardware, as long as your cable modem handles your connection speed and channel count, I'd say your good, especially with Arris/Motorola -- the surfboards are solid modems. For the router, if you want to stay purely wired, I agree with SEM --- UBNT ER-X; maybe a MikroTik hEx if you don't mind getting very technical. Otherwise, perhaps OpenWRT on an Atheros box (Buffalo, TP-Link, etc), wifi turned off, or kept on for admin/private bandwidth. Then I'd use the twin 68's as your main and guest-serving APs, placed optimally, with channels set on non-interfering frequencies. Make sure you hook up as many endpoints/switches by wire or powerline/moca as possible, and you should be good to go.