How does DupliFaces arrange the copies? Confused

Hi. I’m modelling an IBM keyboard for fun. Thanks to ‘fudje’, I’m trying DupliVerts function to do the regular sized keys.
But I’m confused about how DupliVerts works: both by Object Parent and Vertice Parent.

The pictures below shows what happens with Object parenting. When I set Vertice parents with three vertices around a common face, depending on which three vertices I choose these automatically duplicated phantoms are lying sideways or upside down. I couldn’t figure out the pattern. So I switched to setting parent Object-to-object. Then at least upside-down or sideways never happened.

The parent planes are exactly where these phantom keys are. There are six of them for the six rows. Of course these consist of square faces and I placed their centers at their leftmost face.

Here is what I did with the six parent planes. For the upper two rows, I duplicated sqare faces two by two, by four, and then removed double. Then for the rest, I copied the second plane to the remaining rows,

And this is what I got. Can anyone explain to me what is happening?