i think you have to create 2 virtual servers; one for request and the other one for response. each virtual server uses profile with immediate timeout (stateless) because if it is not stateless, response will not hit the response virtual server (it will hit existing connection entry in connection table), so you cannot control source port.
to change source port, you may try snat command but please be noted that the source port you want may not be available on that tmm depending on disaggregation method system uses e.g. source port xor destination port.
snat
https://devcentral.f5.com/wiki/iRules.snat.ashx