Hi,
I've expirenced simmilar issues that MC-114104 and MC-163953 describe.
Hoewer, this issue is not present in 1.17.x. Perhaps the spawner syntax change broke something.
How to reproduce:
1. Launch minecraft in versions 1.18 and above
2. Run
/fill ~1 ~ ~ ~1 ~1 ~ minecraft:spawner{SpawnData:{entity:{id:"minecraft:armor_stand"}},RequiredPlayerRange:0s,MaxNearbyEntities:0s}
3. Run
/data modify block ~1 ~ ~ SpawnData.entity.id set value "minecraft:bat"
4. Observe how the mob inside the bottom spawner changes to a bat, and the top spawner is still an armorstand
5. Run
/data get block ~1 ~1 ~ SpawnData.entity.id
It returns "minecraft:bat"! Notice that client is still displaying an armor stand.
Once again, it works only in 1.18 and above