The class system I was going to incorporate in somnium was a little different than the norm.
Each character has a "fixed" class title (Hero can switch between 2 starting one and if he goes the dark path.) but you're not restricted on what weapons or armour you can choose.
Each class had some unique skills that other players couldn't learn but most learn able skills required specific weapons to be use able. (Having a skill like power thrust for example usable with an axe or mace would look dumb)
Each armour type (Heavy, medium, light) had it's bonuses and negatives through incorporating status effects that boost and lower certain stats, this provides the player with the possibility to mix and match however they like.
Apart of that when you level you have points to spend on stats however you want. (Tough if you spent all points to be good in melee then switch weapon/armour because x monster is weak to magic attacks you wouldn't be as powerful as a player fully specialised as mage.)
Not sure if that is considered complex but it surely would be hard to balance it heh.
Now from what I read from your OP If you intend on keeping that route I strongly suggest you keep it cool. By limiting the choices at the start people might be annoyed if they have to restart the game from scratch because they thought x class would have been what they wanted but y class turns out to be more interesting.
I know it's going to take you more time if you keep all possible classes available ingame but that might make people spend more time to try every possible class without having to make a new game every time if there's enough content of course.
Most of what I said had nothing to do with what you need (I think) I just mentioned it because your class choices seemed like trying to have the character able to switch classes which is very welcomed in games if done well.
Anyway goodluck on your decision