You can try port forwarding if you haven't done so.
Give your Xbox a static IP (something like 192.168.1.55 so the dynamic IP service of your router doesn't assign the same IP to another device), then go into your router's port forwarding section not the QoS; the page is different for most routers but it looks like a giant table with the fields: rule, name, protocol, port start, port end, IP. Then create a rule for each port (name them xbox(number) so your can remember them), and forward these ports 53, 80, 88, and 3074, to the IP of your xbox that you have assigned.
So your table should have 4 entry like this that alternate with the different port numbers
rule = 1, name = xbox(1), protocol = all, port start = 88, port end = 88, I.P = Static IP of Xbox
rule - 2, name = xbox(2), portocol = all, prot start = 3074, port end = 3074, I.P. = ""
Save these settings for each port, restart the router and xbox, and your bandwidth should be better.
QoS is more for when you have a shared network where two people are surfing the net while one is playing a game or streaming a video. This tells the router to give the most upload to the application or user using the most data. If you are competing for data then this is something to look into, but if your not, it's not vital.
Port forwarding is a bit different, data is sent to different IP's using different ports, the xbox live service uses many ports to send data to consoles but the most vital for console upload are the ones I mentioned. So by telling the router that all the data that these ports send and recieve should go to the xbox and the xbox service, it makes the connection better since no other application can interfere with those ports.
This make the static IP extremly important as the router needs a specific destination to send and recieve data, and if another device has the same IP as your xbox then the router doesn't know what to do.