The hardware is a Broadcom-based chip built in to my Asus ROG motherboard. Broadcom are known to not play well with Linux, so there’s that. The thing is, it used to work fine out of the box on older kernels, which I guess is when my expectations were set. It wasn’t until sometime during 4.x and onwards I started having these sorts of issues on fresh installs.
That said, it’s nowhere near as bad as the old days of Intel Centrino and the kludge that was ndiswrapper. At least I don’t have to recompile my kernel from source these days!