You are sure the issue is related to persistency? Your described approach should make sure a specific mapping will be made based on the clients network range of 24bit.
How about taking one of the proxies offline (individual poolmember settings) and run tests again from both clients? Still same result? Now switch the proxies and try again, please.
Do you see the 307 as well for logons from client A? How does the client B deal with the 307? A and B belong to different subnets? Otherwise they should be send to the same poolmember according to the selected persistence method.
A browser plugin or a clientside tcpdump on your BIG-IP may help to troubleshoot the issue.