So first of all, I really like this idea. I tried it once or twice a long time ago and I'm still fantasizing about it. With that out of the way, let's move to my 2 cents.
Make the NPCs well-rounded characters
These NPCs aren't just some recurring characters, not to mention some one-time ones. They're gonna be with the party for a very long time. Whole adventures, actually, which is quite a lot. This means that they should be really well rounded. Your players should get to the point of distinguishing between them after just a few words, especially when the NPCs are the ones who spark the conversation.
More than that, though, they should be more than cardstock characters. You want them to express feelings, you want them to have goals, and you want them to react. Otherwise, your players will have hard time connecting with them, and this is far less good. As a rule of thumb, make them round and distinguishable from each other. A wizard is different from a fighter, true, but we want a greater difference. The prince will have hard time adjusting to the wilderness and to the bugs in his bed. The merchant will always stop to collect the better loot so she'll be able to earn much from those bargains. Classes are a dirty way to distinguish, but they're better when accompanied by some other traits.
Don't let them speak right one after the other
The players aren't coming for the game as an audience for a theater, they're here to play, and hearing NPCs talk with each other is far less fun. If you must make them speak between themselves, make it as quickly as you can and immediately move on. If you can narrate the conversation instead ("they're talking about what happened, Elsa thinks that they should go east and Hans thinks that they should go west…"), it is far far better.
Give the players the center stage
The players and their characters are the real stars of the campaign. The NPCs are extras, and should always be seen like for you that when you're playing them. If they're far cooler than the PCs, or if they have much more screen time, something is off with your campaign. It's better to not have the NPCs with the group than to let them illuminate and shadow the PCs.
They're not all knowing
Think for yourself what is more important, a character who knows everything or a character who knows only part of them. For me, it is the latter. That comes from one simple thing: There's no drama when everyone knows everything (it is not entirely true, but that's for another time). Make them say sometimes stupid or idiotic things, make them come to wrong conclusions, let them make mistakes. They're not a kind of supernatural deity who knows everything, but humanoids who are as humane as the characters, and they should be played this way.
Make them important for the story
They should always be important to the overall story, in one way or another. In one of my more successful D&D campaigns, the characters had to escort a princess to a neighboring kingdom through the forests. Having to keep her safe from one hand, and dealing with all of her complaints from the other one made the game so much richer. They don't have to be important to each and every one of the scenes, but they should always be important for the overall story. Otherwise, the characters may just leave them to rot one day, when things will turn the wrong way.
And an end
Hope I succeeded with helping you a little bit.
As a fan of the Suikoden franchise, I also like creating basic NPCs that follows the players (the Smith is a common one).
You seem to already avoid the pitfalls of most GMPCs: disliked by PCs, and abnormally strong and awesome. That's great.
Since your problem is mostly related to combat, I would suggest an option I use when NPCs become good enough to be useful in combat (otherwise they stay in the back, or simply give a passive bonus): let your players play them.
Make a character sheet, control the character out of combat, and when combat happens simply hand the sheet to the players. Either have one player control it (the one most familiar with the rules, or whose character cannot play at the moment), or even make it a group thing with all players (you included) deciding what the NPC should do.
For lazy players, consider statting the NPC as a monster, with a couple at-wills and some recharge powers, just like a monster. The (significantly) reduced complexity of the character might make them less reluctant to take on the additional effort of managing the NPC's combat.
However it's statted, handing over control of the character makes it easier for you to avoid most bias, and for the players to better relate to the NPC.
Best Answer
As far as the allied NPC is concerned, I think you are correct. The other option is to simply increase the amount of XP by whatever he would take, and then still give them the same XP.
For the multi-fight combat, you can set up the scenario to make it less likely the NPCs will all gang up on the PCs. For their experience, you can give them the experience for NPCs they personally kill/knock unconcious, or ones they do a percentage of the damage to, or give a percentage of XP per NPC based on the percentage of damage they do (this last one requires a LOT of bookkeeping and math - just to be forewarned).
As for XP budget, I would definitely make it more than the standard encounter. How much more I think depends more on the set up than anything else. If it is likely that the PCs will only be fighting about half of each force at a time, make it double (or even more if you want to be really mean). Otherwise, you should budget it based on how many of the individuals you think are likely to focus on the PCs at any given time.
Hope that helps.