I'd guess it's a per-port current limitation or the port voltage dropping low. If fewer sticks works just fine, likely it's a power limit with your hub. I run cgminer with 20 sticks at 200MHz and get full speed out of 'em so it's not a software limit. Even if it was, you wouldn't see errors as a result - the sticks just don't get as much work, probably due to a USB packet limitation, so they run starved and just report low hashrates because the hash cores spend some time idling and that's actually all the work they're doing.
7W per stick should get you up to 300MHz cleanly, but 7W per stick is 1.4A (or potentially up to 1.6A if your voltage is sagging) and not every hub can do that. If the voltage drops below about 0.4, even momentarily, the regulator will reset and your ASIC will trip up. How much power is going into a hub doesn't matter nearly as much as how much power the hub is capable of putting out through a single port, or collectively on several ports. You could drive that thing off a car battery with a couple hundred amps capacity and it might not behave any better if the ports themselves can't push more than one amp reliably. Or, more likely since you could push two sticks well enough, the internal 12->5V is sagging or current-limited such that it'll drive two sticks well but can't handle the power required for four.
433MHz at 0.8V is probably about 3A per stick, so your hub is pushing 30W internally. Try setting the sticks to about 740mV and 300MHz, which should draw something like 6.8W per stick; four would then be about 27W total. See if it'll keep up. If you can, plug up first one stick, then two, then three, then four; after each stick, measure the 5V coming out of the hub ports and see if it's starting to drop. If you don't have an inline meter, use the meter you use to check core voltage and measure across the outside two pins on the USB plug.