As a general rule, multiple default gateways never make sense. You're telling the IP stack "please load balance outbound traffic across these gateways", and there are precious few scenarios where this is the desirable behaviour.
What exactly do you mean by "if en2 is my gateway then everything works"? Surely the system can't be its own gateway, so I'm assuming you mean some other router on that network?
"Regular" routing (entries in the default routing table) is all about destination addresses, and as such, you can only route selected traffic to a gateway on the network connected to en2 if you know the destination addresses involved. However, if you want to route all connections involving the IP address 172.16.0.242 to a certain gateway, that is actually possible with policy routing. Is that what you're looking for?