Your mangle test results are within my expectations:
The ethx ports are Layer2 ports, the switch0 port , having the IP address, is layer3 port.
Maybe this is an alternative: create DHCP reservations for your clients, group them in 2 IP sub ranges, and do PBR on source IP