I agree with OP and a lot of you that classes of our companions should not be mutable, since Larian has put a lot of effort into creating a backstory story for these characters as they stand and they are, after all, meant to be NPCs that we control. It just helps Larian create a more interesting story, which... I believe is what most of us are here for? You don't see us going to Pikachu and telling it to become a water type cause we're missing a water type in our squad of pokemon; you caught a Pikachu... congrats you caught an Electric type, move on to capture a water type somewhere else in the map.

However, in the spirit of all RPGs, if someone wants to play as an Origin character with a separate class, who are we to force them to play a certain class as that character? I think that we should allow players to customize their main character, be it Origin or Custom, as their heart desires. Since after all, we, as players, have control of the dialogue of our created character... I think it would be safe to say that by creating a character form an Origin background, you're effectively removing the companion of similar name from play, and lose all dialogues and backstories related to this character. Harsh? Maybe, but hey... you chose to pick a premade character instead of actually being creative and building your own persona in game... I think you had it coming. I do think though, that we should increase the size to the party to maybe 6? That way we get to see how these NPCs backstories untangle... and also to have more party synergy hehehe.

TL;DR: Larian don't add the option to change NPCs' classes just cause they're inconvenient to the player, but do allow players to create whatever main character they'd like to make with its own consequences. Also, can we have a bigger group so more dialogues and synergies can be observed in the playthrough?