mtnPhil:
Things that are a good fit for multithreading would be things that don't require much interaction with the rest of your game's data/logic. That is, things that are self-contained. If your character collisions tests use data that is changing at the same time (say collisions with other characters, and those characters positions are being changed), then it might not be a good fit.
There's something you can try now though, to see if that is really your problem. If you artifically limit the number of character collision tests, does your frame rate improve?
There are two things really getting in the way.
I update the animation of each vertex indepedently which I now know I should use the gpu to do somehow but I really don't want to right now.
The collision slowing me down is only level collision.
I turned off both and instantly boosted up 60fps. None of the collision detection or the animation updates rely on other characters so I think it should fit well!
I haven't tried specifically limiting collisions for some characters but, even though it could relate to multiple problems, removing characters does speed the game up.