Reference Viewer is your friend. The bp that you were adding the change to that causes the corruption is the one that completes the circle so start there. With the corrupting change implemented, compiling, and saved, follow references forward or back and see if you can end up where you started.
Now I’m not sure that every circular reference chain causes the corruption, but I don’t think so. But in my experience, if the chain is going to corrupt, it will be consistent every time you try to add it. So if you’ve found a chain, break it. Aka, remove a reference to another BP in one of the objects temporarily, and check the Reference Viewer to confirm the reference is gone. Your project doesn’t need to run correctly, but it needs to compile and save. Then compile, save, close, reopen project with your corrupting change still implemented. If it opens and doesn’t corrupt, you’ve found your chain! Now you need to find a permanent solution for breaking that chain. If it does corrupt, this is not the chain you’re looking for, OR you have created multiple chains in one go. You can go back to a backup and try for another chain.
Good luck!