I'm afraid not. I've had a fairly thorough look through all of the code I felt was relevant and I can't see anything that could cause a problem like that. Sorry. I have got a couple more pointers though.
1) In calcNormals(), you work out the face's normal, but instead of just setting the vertex's normal to that, you add it to the preexisting normal. Which should be fine because they get initialized to 0, 0, 0 but if it was me, something like this would worry me that it was wither causing problems I haven't noticed or will cause problems in the future when I forget about it. I don't know if you have a reason for it but I couldn't think of any.
2) Again in calcNormals(), at the end you go through and normalize every single vertices' normal, but they should already be normalized (you normalize them when you work them out). If there is a reason for the above, then this might make sense but otherwise it's just senseless calculations.
3) In your Vertex class, you store the normals as an array, length 4. But normals, to my knowledge, should never be 4 dimensional. You seem to agree with this as the only (non commented) reference to the 4th index is in getNormals() which I didn't see any reference to. As with (1) I would just get rid of it in case something goes wrong with it in the future.