Thank you for your thoughtful answer! Here are further comments and questions.
You are right; if you use the same karma score for PCs and all the NPCs, you get the weird behavior you describe. To fix this, you need to keep track of separate karma scores for each character. It could be a cumbersome operation if you are doing it pen-and-paper, but on a computer, this is a trivial modification of the original script.
In pen and paper, the GM has a screen behind which all sorts of fate-bending shenanigans can occur. I assume karmic dice exist to emulate this on some level, but that's part of the game design discussion; more on that below.
As far as implementing multiple karma scores in BG3, I'd only keep track of 2 or 3 (both teams get one and maybe a third for the neutrals) if only for optimization purposes. Your solution works perfectly fine, though; this is nitpickiping.
However, a method that adjusts the dice's roll based on the outcome would penalize good players and help bad players, therefore affecting the game balance. Once again, this could be okay, but it is a more intrusive operation with potentially radical consequences on the gameplay.
Presumably, Larian were hoping for some kind of impact to gameplay when designing karmic dice, which were created in response to some players' complaints that the dice seemed to yield more failure than intuition would suggest. For those players, it's all about hits and misses. We can infer that this is the case from the way karmic dice were implemented in early access (I've no intel on how it works in the release version): The AI would hit high AC characters far more than expected, effectively giving a gameplay advantage to a bad player, in this case the AI.
In a sense, impact on gameplay is unavoidable because the goal is for the player's perception of randomness in the game to match their intuition, biased though it might be. In other words, if players don't notice the feature, it's not really doing it's job. That's not to say your method wouldn't be noticeable, I believe it should be tested in a mod, but "better" to Larian means "makes the target audience happier", so we shouldn't shy away from mathematically inelegant solutions if they're effective.
Here's the tweak I'd like to propose and subsequently study. I think that the distribution remains uniform despite the influence of latent karma because the kappa coefficient is constant, ie bad karma is weighted the same as good karma. If kappa increased whenever the player failed and decreased when they succeeded (inversely for AI), players would benefit from good runs while being less likely to experience bad runs, which "feels fair" to our flawed brains. This would hopefully achieve an effect similar to a GM reading the room. Calibrating kappa's rate of change (arithmetic? geometric?) requires testing; I'm curious to know if there's a way to establish a formal equation linking kappa and the new random variable we've created.
P.S. I realize there wasn't a question in there, aside from an implicit request for comment, but I do have a stats question I can't wrap my head around involving Magic the Gathering, odds of streaks and card counting. Would you mind if I DMed some specifics?