Engineers don't fire garand grenades when they are going to PLANT goals. Do you need to disable it for BUILD goals too ? Maybe I could add a new optional property to the BUILD goal which would be used for objectives that need a lot of charge.
If you want to disable grenades in some narrow corridors, you can create a region trigger and use function ETUtil.DisableRifleNade.
Function WeaponTable.SetWeaponAvailability can be used to set weapons for team/class, but it's not possible to set a weapon for a role.
If you want to change weapons manually in triggers, you should set Map.DontSelectWeapons=true. That will solve the problem of spawn self killing, but it completely disables weapon selection globally for all bots.