That's what confuses me. I added the character in 2.0. It was Ethan. And everyone had to run in to him.
I see what happened, see pictures, first is v2, second is v3. In v2 you have the characters in an init block, which is basically the same as "define", in v3 there is no init block for the character, hence unless the user comes across that line of code in the current playthrough the character is "undefined", because it wasn't initialized at launch.
Any character or variable in an init block is not saved when the user saves their game unless the variable is modified in the code, ie 'kindness +=1', then the variable will be saved in the save file, otherwise it is ignored.
My advice, make a separate file for you characters and have them all together in one place instead of scattered through the code, it makes them easier to reference and find if there is an issue. You can have as many files as you want in the game, use them to organize everything, it's what I do, compartmentalize.