Do clients connect to multiple virtual servers? If not, and you're using only this rule, I don't think you need to add 'any' to the persist command.
If you add logging to each condition and reproduce the issue, what do you see in the logs? Can you also check the 'b persist all show all' output as you test? This will show the persistence records LTM holds.
You can use also log the persistence record found for the token using 'persist lookup uie $token' in the rule. And it might help to log [LB::server] in LB_SELECTED and [IP::server_addr]:[TCP::server_port] in SERVER_CONNECTED.
Aaron