In that configuration I can see incoming tagged packets are properly goes to vlan(4) interfaces, but outgoing are always fall to switch's native vlan.
Paste some "$ sudo tcpdump -n -i vlanXX -ttt -vvv -e" output?
What can be the problem in that case? And how can I debug this? Routes were flushed (even booted with that configuration) -- Sincerelly yours --