The first thing I would do is detach that poly object into separate objects (use Soulburns [objectDetacher](http://www.neilblevins.com/soulburnscripts/soulburnscripts.htm) script). Then in the Birth Script iterate through the individual objects and match their transforms.
thats a good idea! (will give it a shot) its better than computing the local transformation matrices of the polygons.
Oh and I think the second vector you are looking for is the one between to verts. Just a guess.
hmm yea! for rectangular polygons one could do that infact i posted a script in this thread that does exactly that! (it finds the TM of a polygon irrespective of the transformations applied to the polygon and the object) given the polygon is rectangular and coplanar ofcourse
http://forums.cgsociety.org/showthread.php?f=98&t=920357 (see post #14)
for a general case, one vector is the normal vector the other one could be the difference between the face-center of the polygons at index (i+1) and (i) this would be the vector indicating the flow of the polygon but using it for computing transformation matrix will work best if the angle between the polygons is minimum! here’s a snap (sphere with 64 segments,with animated noise modifier applied to it):

image on the left uses the “polygon flow direction” vector and image on the right uses the direction vector of the sphere to compute the transformation matrices of the particles.
cheers! 





