I've had to do some setIndex of my own not too long ago, and had to deal with similar issues trying to wrap all that MScriptUtil nonsense. While I can't really comment as to why your code is not working, here's what ended up working for me, hopefully it helps you sorting out your problem.
Only real difference I can see is the MItMeshPolygon constructor we are using.
self.dagPath & self.faceID are variables created somewhere else matching a specific object and a face ID in this object.
comp = api.MObject()
area = api.MScriptUtil()
areaPtr = area.asDoublePtr()
dummy = api.MScriptUtil()
currentFace = api.MItMeshPolygon( self.dagPath, comp )