0. Less total names and more True Names: this seems to make the game more mafia only by making it less Codenames, which I'dn't like.
1. Shots counting more in the beginning: sure, adding a few more shots (with the same total clue throughput) seems good, for letting teams spend some of them on plots.
3. Removing the parity check: sure. A minimal change would be to say that each person gets witness or espionage independently with probability 1/2, or even that subject to that each team gets the same total number of witnessings. For a bigger change, see below.
4. Let's make game bigger again by increasing the total number of names.
5. Effectiveness of observing who's shooting at you: we could fix this and the color-cycle asymmetry problem simultaneously by just giving each person words of all three colors in addition to bystanders, so people of all three teams could plausibly want to shoot at you; you'd still care _what_ words they're shooting at you for, but that's at least Codenamishly interesting. (Or we could just get rid of the third team; I don't think we need them now that we have the True Names thing.)
2. Changing witness/espionage: sure. Removing witness and reworking espionage also goes with a proposal I have to make the Codenames clue numbers more meaningful (which also reduces the incentive to use that as a side information channel):
It's sad that there's nothing really making spymasters state their clue number accurately; the line between deciding boundary cases and just using it as an extra channel independent of the clue is too thin. What if we say that each spymaster actually records a list of the words they mean to clue, and that has some mechanical effect? For instance:
-(Replacing espionage): when you shoot at a word, you're told a(ll) clue(s) that clued it.
-(Incentive to not include too-borderline words): when a team shoots at the last word for a clue, they get a prize, like learning that they've done so, or being told who shot at each of the clued words.