The code you used to get the Finger object from a Pointable was correct:
Pointable point = keytap.Pointable;
Finger finger = new Finger(point);
Casting doesn't work for these classes (I don't remember why).
As for the original problem, your code works fine.I suspect what you are seeing is that it is easy to tap with two fingers, even when you intend to tap with only one. Open the diagnostic visualizer and turn on the "gesture drawing" feature (press "O"). Compare the keytaps you see in the visualizer to your application printout.