The AI of Pokemon trainers is programmed to prioritize super effective moves against your Pokemon, however this is regardless of whether the move actually does damage or not. So if you have a Venomoth against some of Lance's dragons, they'll spam Agility and Barrier as psychic is super effective against poison, but won't do any damage. Plus, they have unlimited PP, so they can continue to spam it indefinitely. Obviously this glitch has been fixed in later generations. Honestly not sure what's going on with your other Pokemon though - you may just have seriously lucked out.