I've discovered a bug that causes masquerading to not work properly. It happens when the NAT rule to-ports property has been set and the action property is masquerade. In this situation the to-ports is used when it should be ignored by masquerading. I.e. masquerading should use the original port. This causes problems when a client wants to do sequential connections, each with a different source port, but the same destination port.
I managed to encounter this bug when I created a nat masquerade rule by copying an existing dst-nat rule and then changing the copy to have a masquerade action. The to-ports property was still set the same as the original dst-nat rule (and then used when doing the masquerade translations). BTW, both winbox and webfig show the To Ports property to be empty if the action is masquerade. It wasn't until I started packet sniffing that I was able to see that masquerading had replaced the original port with the to-port that had been used in the original dst-nat rule.
Configuration : RouterBoard 450G, Firmware 2.29. RouterOS 5.11