Surprisingly enough, I haven't completely abandoned this thing.
After hitting yet another major roadblock, I gave up for a while, waiting for a new version of Sketchup which would hopefully expose itself to the ruby api better.
But I had an idea the other day, so with a complete rewrite of the entire material system (and 99% of everything else) today I've been able to actually get texturing working properly.
It's not ready for a release yet, it's still fairly untested. Unfortunately this isn't the version with OSM scene export, getting the new material system to work with component instancing and scene stuff could take a bit of work.
I'll try to get a texture filename fixer added before releasing it.
Some examples:
Sketchup:

Ogre:

Those 2 models were very troublesome until now, most of their textures came out wrong.
The problem was that sketchup has a habit of doing secret texture stuff in the background without letting you directly know. If a face is uv mapped in a certain way, sketchup actually creates a new texture which is distorted to fit the face. So 2 faces can both reference the same material, and the material lists only 1 texture, but internally there's really 2 textures with different names. Asking sketchup to save it's textures will save the distorted ones too, but there's no direct way of finding out which face uses a distorted texture and which uses the original texture.
To get around it, I've had to create temp geometry with simple uv mapping, add each possible material to it, add the face to a texture writer and store the handles returned from the texture writer. After that, any face which generates a different handle must be distorted, since the first face added for each material is definitely not distorted. Tracking the order the faces are added lets me guess what the distorted textures' names should be.
Argh. My head hurts now.