What happens if you take out glPushMatrix(); glLoadIdentity(); glPopMatrix(); from TLightManager.ApplyLighting; ? I guess it's the same thing NecroDome and Delfi say.

Also something that can make faces black is if it is considered single sided, as this will ignore lighting calculation on backside. I think some glMaterial or related functions solve that (some GL_FRONT_AND_BACK thing...). Normally every model face should be 1 sided anyway with glEnable(GL_CULL_FACE).