1) On Nadethrow, pev(pev_owner, owner) should be owner = pev(nade_id, pev_owner). And there's no reason for owner to be a global variable.
2) You should use pcvars.
3) Your logic is in the right way, but in a real situation it gets tricky. What if a player throws a grenade, then another player throws another one before the first grenade hits someone? A think a nice approach will be to store the id of the thrown grenade, then in touch_nade check if the id of the touching grenade matches the id of the thrown nade. Then you check for the players teams.