I have a question - are the nature/IVs assigned to shadow Pokémon still being severely limited by the Pokémon before it? What happens is, the Pokémon are generated in order, and for whatever reason, the unmodified game decides to check each PID for the non-shadow Pokémon, and reject it if it doesn't fit their assigned nature/gender, or is shiny. This limits the possible spreads on the next Pokémon severely - a single 50% gender ratio Pokémon before the shadow one will cut the available spreads from 2^32 to 1/50th of that (1/25 for matching nature, then 1/2 for 50/50 gender). Since even 2^32 possible IV/nature combinations don't yield every single possibility, the nature/gender lock of non-shadow Pokémon really hurts.
I imagine it would be easier to make the shadow Pokémon get generated first than to add a function that would modify the PID of the non-shadow Pokémon to fit their assigned nature/gender. Colosseum actually does the former for many Pokémon - notably the gen 2 legendary beasts are generated first, allowing for all 2^32 possibilities.