I dug into some C++ code and they seem to have altered the logic for instance removal for ISM by the methods such as RemoveInstance. I doubt it will be any different for HISM. In my project because I upgraded to 5.4, I failed to notice the issue due to preview set to SM5 which does not show the rendering bug so I had to rethink a new logic entirely for my project.
In the previous versions they used RemoveAt to remove the item from array but now they use the method RemoveAtSwap.
You can use the CVar as in the image to give a try if that solves your issue.
The core issue seems like the instances are being removed but the rendering is not being correctly updated.
r.InstancedStaticMeshes.ForceRemoveAtSwap
I have submitted multiple bug reports on this issue but got no response. You are the only one who has responded after facing the similar issue. So thanks!