Why is Linux choosing the wrong source ip address
Solution 1:
It sounds like you want to specify for traffic to be routed out a particular alias interface and with the source IP associated with that alias. Your route table doesn't currently reflect that requirement. Perhaps you can use this to fix it up:
ip route add <NET> dev <ALIAS_DEV> src <SRC_IP>