I will try to explain in the best way I could. If you don't understand, or you don't see what I mean, feel free to ask me clarifications.
Before, look these images :
https://nsa39.casimages.com/img/2018/06/10/180610013656406042.png https://nsa39.casimages.com/img/2018/06/10/180610013656539056.png https://nsa39.casimages.com/img/2018/06/10/180610013656806520.png
Now, I guess lot of Shadow IDs are wrong, and exchanged with (redirecting to) others shadow Pokémons.
I also battled a Natu (https://www.serebii.net/xd/pokemon.shtml #177 at Phenac), but it wasn't shadow at all, plus it was using shadow moves, so it should definitely have been shadow.
So, why it wasn't?
Because I guess Shadow Pokémons have a Heart Gauge before even they are caught, and I think I put its gauge as 0, previously on a pokemon with a wrong ID.
Let's say it was a Vulpix. I set the Vulpix's gauge to 0 to easily purifying it, but it's actually Natu's gauge, redirecting to it, while the Vulpix's gauge still actually full with 5000.
So once the battle vs Natu start, the game read its gauge as 0, think it's not a shadow pokemon, and prevent me to caught it.
It's possible to fix that?
I don't know how to explain better, but feel free to ask questions.