Good, that's the way to start getting help
, try it first and post your config.
Now to the point, first it is important that wireless interface named qbtcm is not part of any bridge interface. I will assume it is not.
Second, your mangle seem correct to some extent, but I would mark connections first and then packets, it is less resource hungry this way:
/ip firewall mangle
add chain=forward in-interface=qbtcm out-interface=WAN action=mark-connection new-connection-mark=upload passthrough=yes
add chain=forward in-interface=WAN out-interface=qbtcm action=mark-connection new-connection-mark=download passthrough=yes
add chain=forward connection-mark=upload action=mark-packet new-packet-mark=upload passthrough=no
add chain=forward connection-mark=download action=mark-packet new-packet-mark=download passthrough=no
Note that last two rules have passthrough=no, that means that packets are not processed anymore and leave the firewall.
Your queues do not have max-limit specified, that is why you probably see no difference. What are the concepts behind limit-at and max-limit? Limit-at is the value that the queue must satisfy no matter what (CIR), it is the least bandwidth that you always guarantee to the customer. Be careful that the sum of limit-at of all child queues should not exceed the max-limit of the parent queue. Once the limit-at is reached the queue will start shaping and limiting the traffic up to the max-limit value. Max-limit as you might understand is the max value of bandwidth allowed by the queue.
In the parent queue you only need to specify the max-limit, in child queue you might need to specify limit-at and max-limit.
/queue tree
add name="ispbandwithup" parent=WAN packet-mark="" limit-at=0 queue=default priority=8 max-limit=Value
burst-limit=0 burst-threshold=0 burst-time=0s
add name="clientup" parent=ispbandwithup packet-mark=upload limit-at=Value queue=wifiup priority=8
max-limit=Value burst-limit=0 burst-threshold=0 burst-time=0s
Same for download. Attach the download parent queue to the wireless interface. Remember to fill in the values for limit-at and max-limit.
Last, the queue type. The specification on wifiup is wrong pcq-classifier=dst-address, it should be pcq-classifier=src-address. Also you have specified a rate in there, which I don't think you would want. As mentioned before, specifying the rate means that customer will get 64k even if there might be more available. If there is only one person using the internet he will get 64k even if there might be 10M.
Better have rate=0, this way customer will have the max bandwidth available, depending on the number of active users.