Most XP through completing missions/sub-mission objectives, some XP for impressive feats and general skill use. I'd prefer that killing generally gets rewarded mainly with loot (not money, because I doubt monsters are composed of fungible, liquid units of economic exchange).
Maybe someone who crafts new weapons could gain some experience in their crafting skill(s) not only by making stuff, but more importantly by seeing their stuff in action, or seeing the results, and learning from it all. This could extend to other skills too, to essentially give you a training system where you only get real results from your training once your training proves useful in action. It could work for fighting, where you spar, or practice shooting, etc, but you don't really know if you will hold up well under the pressure of real fights until you try, etc. It could also work for medical skill, or scientific skill, or other more cerebral skills, where you might have found a book somewhere and studied it but putting it in practice is key to actually getting better.
As for how granular skills should be, maybe you can do something kinda like Omega Legion, with general skills and more narrow specializations.
On an unrelated note, thematically, why do we need to have a 'holy city'? I'd much rather that the home base be just one of many villages of people scrabbling to survive within the city, instead of some special place that sends forth crusaders to conquer the fell forces of chaos. I guess our players could still affectionately call their home village the 'holy city', maybe it's the kind of thing that gives them a feeling of having a purpose; but I don't want it to be some amazing place or anything.