Ipl isn't the problem. Ipl is the best thing that happened to Indian cricket.
Problem is making players bigger than the game. Its natural for players to want to play all formats, but here some players don't want any one else to get the opportunity to play. They are afraid that they might lose position if a new player plays couple of good games. Virat kept on with Pujara & rahane for long, not because he believed in them, but because he knew if they are forced out he'll be next. At that time the 4 best performing batsmen were 4 alrounders ( Pant+jaddu+ash+axar), yet only 2 (abroad) or 3(india) were playing at the same time. Players of jaddu/ash/axar caliber would've played twice as much if they were in any other team.
Look what they have been doing with Kl since beginning, what they were doing with no4 position during 2017-2019. Seemed like they were more interested in playing musical chair than cricket. In their eyes some are important, rest are replaceable.
Anderson/Stuart could play so many tests and kept their form so long, only because they chose one format. Its time same is forced on Indian players.
It's not reasonable for a country of 1.4bn people and so many talented players to play so few matches. India can field 2 teams in 2 different parts of the world on the same day and win both. may be Its not there yet in test, but definitely is in t20 and odi. But india plays less t20i than most smaller teams.
Then the politics/mh+GJ lobby. Funnily enough mh lobby doesn't lobby for local captain (Rituraj Gaikwad ) at least for no3 position.