Looks like you just about got it. The faces follow the norms so your face data start point should be
FacePos=NormPos+(NormNum*12)
I can't remember the face layout offhand and don't have anything in front of me to look it up. The one thing I do remember is the face data size is dwords not bytes like the other data.
Looks like you are on the right track. You can do a quick check to understand the format better if you create a plain. Make a mesh and a memblock out of, then look at all of the data in the memblock and see how it relates to the header description from the manual.
Enjoy your day.