To remove the black from the gray, put the black one on top, and then use Difference. Although you are not out of bounds in wondering if the complexity of the paths could have an effect. They certainly could.
In fact, after I posted my first reply, I was looking more closely, and I did see at least one sort of glitch with the Union. A section which was supposed to be white (well, transparent really, but on the cat, white) had become filled.
Let me try the Difference..... Well, except for the exact same place where I noted had been filled during Union, Difference works fine for me. It's one of the little streaks of white in the eyebrow that gets filled (the eye on the right, cat's left). You can actually see it better using Difference.
(To fix that, you'll need to switch to the Node tool, and find where a path is not closed properly.....or maybe inadvertently closed. I can help, if you need it, finding that path.)
Regarding Stack Scans. I could be wrong, but I don't think unchecking Stack Scans removes the overlaps. It just means that the scans are tiled instead of all stacked up. Without having the scans stacked, I would think it would be harder to realign them for the path operations.
Can I ask what the goal of this project is? It seems too complex of a path to be meant for cutting. It's just that cutting is one of the reasons people don't want overlaps. Another reason is for putting designs on fabric (screenprint t-shirt for example). And also, if you could share the original photo? I'd be glad to try and find a better routine. I'd be curious if a single scan option would work better. Well, only if you want to share. I don't mean to pry