After some to-ing and fro-ing with SoftImage support, it looks like automating the IK sampling by recreating what the user does manually doesn't work - it looks like it should, since manually following the steps works, as does running the script I execute create one line at a time, but doing in one go doesn't, and no amount of fiddling with refresh settings et al seems to fix it. So, I've decided to take another approach. It means some refactoring of the animation export code though- rather than sampling one Action into another Action as the user would, I'm going to sample right off the running state direct. Means I can't use the same code to export Actions and sampled IK, but it shouldn't be too big a deal. I've been distracted the last week, doing other things while waiting for SI, and then some contract work, but I hope to get back to XSI within the next couple of days. It's frustrating because it's so outrageously close, but I have to back up and try a different route to get that last few centimetres. It's been a learning process though.
OGRE can handle 65536 vertices (not triangles - if verts are reused there will be more tris) when using 16-bit indexes, and up to 4 million (ish) when using 32-bit indexes (which are less efficient). The XSI exporter automatically decides whether to use 16- or 32-bit indexes depending on your mesh size.