Okay, I spent a few hours looking into this, but unfortunately I don't have good news for. I'm going to explain my understanding of things - I'm sure you already know this, but I'm kind of hoping that I got something wrong that would make things easier on us. Forgive me if this sounds like I'm talking down here - this is sort of rubber duck debugging, me talking this out to myself in public in the hope someone will come up to me and say I got something wrong.
So, these are
Arabic diacritics, which are used to indicate missing vowels and consonant length. These tend to be used in religious texts (which I'm guessing have obscure words) and works written for children (who need to be able to match word sounds with written words), but not as part of general writing meant to be consumed by adults.
The problem is that placing these diacritics is hard. There are fairly complicated rules that need to be obeyed, since it's reasonable that multiple diacritics can be applied to a single character, and the location of the diacritic will vary based on the character it's applied to and any other diacritics that are present.
I think this is beyond what I could add to Ren'Py in any sort of reasonable timeframe, at least with any sort of degree of correctness. It would basically require a rewrite of how Ren'Py handles text, to make it use a library like harfbuzz, and everything else that entails. I won't rule out doing that someday, but that someday is going to be a long time off.
The one thing I could do would be to give you a text tag that takes in a series of characters, and returns instructions to tell Ren'Py how to move the last character. So it might see U+fee2 (meem final form) and U+064e (fatah), and it would know to move U+064e left and down by so many pixels when that happens.
If that's interesting, let me know, and I could add that feature. And if I got something wrong here, please let me know. But apart from that, I don't think I can fix this on a reasonable timeframe.