Is 'Face Hit' ever printed? If so, try printing the info.object when you know you've made a headshot. Can you identify the node in your world that is the info.object?
If ‘Face Hit’ is not printed, check your viz.intersect() points and verify that they create a line passing through the head geometry.
If viz.intersect() is not getting the faces you can also try creating an invisible child boxes as children of the avatar’s heads and use them as the intersection targets.
Code:
box = face.add( 'box.wrl' )
box.scale( .5, .5, .5 )
box.visible( viz.OFF )