The mangle rules added to implement the load distribution actually do break it, but as you say the problem existed before these rules were put into place, it means fixing them will not be enough. In particular, the xxx.yyy.zzz.176/29 is not added to the address-list Connected, so packets from 192.168.5.x to xxx.yyy.zzz.176/29 are not ignored by the rule assigning connection-mark LAN->WAN, so after the translation by the next rule to connection-mark Sticky_OVH, routing-mark OVH_Route is assigned also to packets from 192.168.5.x to xxx.yyy.zzz.176/29 and thus they are sent via the PPPoE interface rather than to the bridge (the distance has lower priority than the routing table name and the prefix). To fix this, it is enough to add xxx.yyy.zzz.176/29 to address-list Connected. Do that before proceeding.
The concept is such that the /29 network is completely hosted on your device, not related in any way to the PPPoE, except that the ISP routes everything towards that /29 to you via the PPPoE. So the route distance=1 dst-address=xxx.yyy.zzz.176/29 gateway=pppoe-OVH is totally useless, it gets overridden by the one added automatically as you’ve attached xxx.yyy.zzz.182/29 to bridge - distance=0 dst-address=xxx.yyy.zzz.176/29 gateway=bridge. But it is only useless, not harmful.
If I get you right, the server has both an address from 192.168.5.0/24 and an address from xxx.yyy.zzz.176/29 on the same interface. So the only explanation I can imagine now is that the server sends its responses from the private IP although the requests come to the public one, but it sounds highly unlikely to me.
So under /interface bridge port, set hw=no at both Ethernet interfaces to which the server and the test LAN client are connected, open a command line window, make it as wide as your screen allows, run /tool sniffer quick ip-protocol=icmp ip-address=xxx.yyy.zzz.17t (the public address of the server) in that window, and start pinging from the PC in 192.168.5.0/24 to see how far the request (and, eventually, response) actually gets and how it looks like at which interface.
If everything was perfect, you should see only the requests to pass through the router, and the responses to bypass the routing engine as the server has an address in the 192.168.5.0/24 so it can send the responses directly:
etherX … → … 192.168.5.n xxx.yyy.zzz.17t … ip:icmp
bridge … → … 192.168.5.n xxx.yyy.zzz.17t … ip:icmp
bridge … ← … 192.168.5.n xxx.yyy.zzz.17t … ip:icmp
etherY … ← … 192.168.5.n xxx.yyy.zzz.17t … ip:icmp
etherY … → … xxx.yyy.zzz.17t 192.168.5.n … ip:icmp
etherX … ← … xxx.yyy.zzz.17t 192.168.5.n … ip:icmp
But as it doesn’t work, you’ll see something different. If it doesn’t help you find the problem, post the outcome here.