The Legality Checker is always correct in reporting most non-event Pokemon as of now (not updated for Pokewalker, XD/Colo, etc yet). If a Pokemon was generated by Method 1/2/3 but shows up as "Hacked or Unknown Pokemon", then it is a hack. That is for the PID/IV relationship only. The Legality Checker also checks other things like Effort Values to make sure they don't exceed 510 EVs in total, along with other details like the Checksum, Gender Ratio, etc. Other than that, look at the Pokemon's data in PokeSav/PokeGen to see if it completely checks out. Obvious things are not highlighted in the Legality Checker.
If you want to edit the EVs, it should pass as long as it does not exceed 510 EVs in total. If you want to edit the Nature or IVs, then you're going to have to generate it properly either by pressing "PID/IV" in PokeSav ("Generate" gives a bad PID which will flag as hacked), or by using PokeGen's PID finder which is honestly easier to use and has more functions.
As for your issue with saving the Pokemon in PokeGen and it turning hacked, are you editing any values? If you didn't edit any values and it still becomes "Hacked", then you're doing something wrong somewhere. Are you targeting the correct game (Options>Target Game)?
For Mystery Gifts, use Grovyle91's Mystery Gift Editor if you can access your save file (MGE cannot make AR codes for BW now, IIRC), or watch the BW AR Code thread for Mystery Gift codes.