The core issue at hand here is luck. You can argue all you want whether Garchomp is over powered by itself but when you pair it with the ability to dodge it can get out of hand very easily. Lets say you have a Garchomp with a set of:
This set can use substitute 4 times, that is 4 chances it gets a free substitute in the sand, this is pretty brainless to spam with a good payoff when it works. Keep in mind after it gets the substitute it will swords dance without a care then proceed to sweep you because you missed a move that should have hit. But this is just the tip of the iceberg. Garchomp can possibly get lucky enough to dodge moves while behind a substitute or go for a risky kill in the sand if it dodges. This is extremely uncompetitive and leaves the other player feeling that it was out of their control. Now we all know moves can miss but those moves usually have significant upsides like huge base power or good secondary traits, sand veil makes every move (apart from garbage moves that state they will hit without fail e.g. aerial ace) the opponent makes have a chance to miss.
I would like to talk about sand briefly here because it is was enables sand veil to work. We have two sand stream setters in OU which are both good being Tyranitar and Hippowdon. It is a fair assumption to make that with 13.8% (Tyranitar) and 7.25% (Hippowdon) usage you will encounter sand setters roughly 1/5 to 1/6 games by your opponent. What I am trying to say here is sand veil has a very reasonable chance to be active in a duel especially if you bring your own setter to initiate it.
I think removing or swapping sand veil would be the best course of action to balance Garchomp.