Load Balance/Dual WAN (PPPoE Dial out) + PPPoE Server HELP

What I can see in your configuration is that you use connection-marks to mark connections for further translation to packet-marks for prioritization (queueing). And to the end of this pre-existing list of mangle rules you have copy-pasted other mangle rules to implement the load distribution using per-connection-classifier.

However, these added rules only assign connection-marks to packets belonging to connections which don’t have any connection-mark assigned yet (because you use the connection-mark=no-mark condition in these rules). Therefore, no connection is ever marked with any of those connection-marks which would be translated to routing-marks by the subsequent rules, so no routing-marks are ever assigned, and so the default routing table is used for all packets.

Unfortunately, removing the condition connection-mark=no-mark from those rules wouldn’t resolve the issue plus it would break the assignment of packet-marks.

This is a limitation of the current firewall implementation. You would have to use combined connection-marks (like games-isp1, games-isp2), assign them in a complex manner (I would use chains to do that), and translate them to packet-marks and routing-marks appropriately, like (simplified!):

chain=prerouting action=jump jump-target=games ...conditions from the rule previously assiging new-connection-mark=games...
chain=prerouting action=jump jump-target=http ...conditions from the rule previously assiging new-connection-mark=http...
...
chain=prerouting action=mark-packet new-packet-mark=games-in connection-mark=games-isp1,games-isp2 passthrough=yes ...
...
chain=prerouting action=mark-routing new-routing-mark=isp1 connection-mark=http-isp1,games-isp1,... ...
...
chain=games action=mark-connection per-connection-classifier=both-addresses:2/0 new-connection-mark=games-isp1
chain=games action=mark-connection per-connection-classifier=both-addresses:2/1 new-connection-mark=games-isp2
..
chain=http action=mark-connection per-connection-classifier=both-addresses:2/0 new-connection-mark=http-isp1
chain=http action=mark-connection per-connection-classifier=both-addresses:2/1 new-connection-mark=http-isp2

That’s still not all, because you have to properly address also the issue of routes marked with routing marks being used also for packets with dst-addresses from connected subnets. As you use both the bridge and ppp interfaces as the LAN zone, in-interface-list=all-ppp is not the best choice as it doesn’t cover the bridge. So /ip route rule rules overriding the routing-marks for anything with dst-address matching any of your LAN zone subnets is a better approach.