Okay, I've slept on that last post I made yesterday, and I looked at the code. In the update 28 script, the title is set to "Lord" by default, and you have a key that stores whether or not the title has been set by the player. And when you TF Marazet, it checks that key, and if it's false, it calls up the title select. The issue I see is that you need to trigger that manually for every single tf that uses a title, instead of making it happen automatically, which is why it doesn't happen for Matthias. Which is very error prone if you forget to put that in anywhere it needs it.
I don't know Python or Ren'Py well enough to know if what I suggest is possible (I'm more familliar with Godot), but maybe instead you could set the default title to something that would never be used by anyone, like "Xanthorple" (A reference to a mass transformation FIM fic called Nightmare on Two Feet), and code it so that if the game tries to ever actually use that specific title, it'll instead pull up the title selection screen and try again. As in, the use of that value for that string in dialogue will automatically call up the function without needing to set a check beforehand.
I just looked at the code again and it's even weirder than I thought. If while during the Marazet Harem TF, Lewis forces acceptance, the game checks if his title is "Lord", and if so, brings up the title selection. But if the acceptance happens gradually, the game instead checks whether or not the title was manually set, and if not, it calls up the title selection. The former will happen even if the title is manually set, as long as it's set to "Lord".