Hmm... Interesting (welcome btw).
In addition to what mikshaw said, taking a look at the file, I don't think you've done anything wrong per-say, certainly not in terms of rigging "a" character. However, yes, rigging up like that is going to cause problems because the way you've done it is quite 'abstract' (the bones and relationships) for a game character.
What I mean is this... games like everything to be pretty basic in nature, an arm has two bones for example, and it's those two bones that you use to animate. If you add more bones to that chain, say control bones and/or other surfaces, it starts to cause issues because those new bones are not directly associated with the mesh itself, there are no vertex groups associated with them so they get ignored on output (iirc this was a good way to control what bones get exported, by checking to see if they're parented with any vertex_groups, it allowed complex rigs but basic output).
That means you could be accidentally rigging in such a way that some bones and/or vertex groups have no associations or are getting miss-matched during the process.
What I would suggest is re-rigging the character and stripping it right back to only the bones you actually need to animate the mesh (or attach things to it). Also be sure that you 'set' any mirror modifiers before export and/or set the origin position of both the mesh and rig correctly in relation to each other. Also you may need to run the animation 'fix' that's mentioned on the Blender web sites and forums due to some issue associated with animation data.
I've really got to get those game animation and rigging tutorials/videos on my to-do list done!