Because there will never be a packet on gem0 with destination 192.168.1.64. The packets are being natted, aren't they? Try using tags, your life will be much simpler.
I tried tags in an earlier iteration of this. Didn't help. As a simpler test, I revised the rule for packets leaving gem0 to this: match out on gem0 all I put it at the top of the ruleset. It matches nothing. -Michael