Between the machamp and the metagross, you seem to have the normal tanks locked down pretty good. But one thing i noticed in the team was it may have difficulty with metagross on defense. I'd say probably switch out the salamence for a rayquaza or another outrage dragonite, as one bar moves arent that good for generalist usages. If not in much need for another dragon, Other than that or if you dont have another dragon type to sub for the salamence, maybe consider a blast burn Charizard or bite/crunch tyranitar for some more metagross coverage (I know tyrantiar is weak to steel, but metagross tend to carry zen headbutt in gyms). After after that, i'd recommend tm'ing the mewtwo to psycho cut, agaisnt the kinds of pokemon you want to use shadow ball against, they resist psychic, and psycho cut's higher EPS is much better for dealing with those, namely metagross as that mewtwo's your only counter to it, and confusion doesnt do much against it.
GamePress
Generalist Team
Since gyms in my area often consist of a one or maybe two fat Normals and a bunch of other assorted mon, here's my go to generalist team (And any suggestions for improvement would be appreciated, thanks)
BP/MM Metagross
DT/DM Salamence
C/SB Mewtwo
C/DP Machamp
DT/O Dragonite
FS/SA Moltres
Report
Answers
I have a bit of a similar lineup to yours, but I have Raikou over Salamence to quickly and safely remove Water types. BB Zard > Moltres may also be a specialist consideration for quickly removing Metagross on defense, which your team currently takes quite a bit of time doing. While Mewtwo helps, it can take a lot of damage and it struggles to finish Metagross off with its fast moves.