After rc.local executed, firewall may still have changes. So you can try have some delay, like
(sleep 5; tc qdisc ....) &
Or pls try to put your command in firewall.user