Well first off, everyone who’s mentioned this gets it wrong out of the gate. You’re dealing with 1 system. You’re creating the extract from a single data set. Then you’re applying the method used to create the data set, to all results that match the data set across all servers, independently. Because once the script is designed to work with one, it will by default work with all, because every server is running the same server software. The only issue i would forsee, is Siptah vs Exiled Lands might have some databasing differences, but i’m speculating there. They could be identical, but i’d expect that’s where your differences lie.
It’s not about each thrall. All the data that constructs the thrall, if it’s stored as plain text in an sqlite database or as a bit-field, or an encoded string, Whatever it is, it still exists within the database because the thralls maintain their characteristics across game sessions. So the data exists and is almost certainly easy to fetch, as the game itself depends on it. In regards to state of repair, those are just item records with bindings to owners/inventories, Otherwise, how would the game -ever- distinguish the difference. The fact it’s fetchable is the proof it’s extractable.