For any packet the router will consult the routing table, regardless of how the packet entered the router. If you want a return route that the routing table usually wouldn't pick you usually have to use routing marks. In your specific scenario you'd be marking connections that come in via a specific interface, and then in mangle apply routing marks to all packets that are part of that connection, and then have a route for that routing mark punting those packets back out the interface you want them to leave the router through.
The second paragraph in the PCC wiki briefly explains the concept: http://wiki.mikrotik.com/wiki/Manual:PCC#Policy_routing
It seems like you're not doing that, looking at the routing table you posted (and by the post you made - I started typing this up before that and it's now a heavily edited version, I hope I edited everything to make sense). Here's roughly what you'd need. I'm setting passthrough to 'yes' assuming you're using some sort of packet marks for queueing purposes. If you don't have other mangle rules you can set it to 'no' to save on processing time. If you need further help you'll have to at least post your mangle rule set so get help to fit this in.
/ip firewall address-list
add list=rfc1918 address=10.0.0.0/8
add list=rfc1918 address=172.16.0.0/12
add list=rfc1918 address=192.168.0.0/16
/ip firewall mangle
add chain=prerouting in-interface=4-Amcom-BDSL connection-state=new action=mark-connection new-connection-mark=to-4-Amcom-BDSL
add chain=prerouting in-interface=5-Amnet connection-state=new action=mark-connection new-connection-mark=to-5-Amnet
add chain=prerouting connection-mark=to-4-Amcom-BDSL src-address-list=rfc1918 action=mark-routing new-routing-mark=to-4-Amcom-BDSL passthrough=no
add chain=prerouting connection-mark=to-5-Amnetsrc-address-list=rfc1918 action=mark-routing new-routing-mark=to-5-Amnet passthrough=no
add dst-address=0.0.0.0/0 routing-mark=to-4-Amcom-BDSL gateway=116.x.x.109
add dst-address=0.0.0.0/0 routing-mark=to-5-Amnet gateway=203.x.x.241
Those should have a lower distance than your existing default routes, which apparently they will according to your current routing table. The mangle rules have a good shot at just working at the top of the rule set before any other rules you have, but if they don't post what you got to get help fitting them in.
Technically you only need to do this for the circuit with the higher distance (the BDSL one), but this won't hurt as such and will keep things working if you ever flip the distances around to prefer the BDSL circuit (maybe while the primary circuit is impacted).
Incidentally, whatever router you have that just 'does this' is doing something along these lines behind the scenes. RouterOS is very naked - it can do all of that, but you explicitly have to tell it to. On the other hand you have full control over everything.
If you compare this to the PCC example it applies the marks to the return packets in rules via in-interface. That's cool because there's only one in that example. You have lots, so it's easier to mark it by private IP space as a source rather than duplicate the rules for every possible LAN interface. It's just more efficient, same effect.
Specific answers require specific questions. When in doubt, post the output of "/ip address print detail", "/ip route print detail", "/interface print detail", "/ip firewall export", and an accurate network diagram.