So, the theory behind all this MMR stuff is that player skill can be quantified on one axis. If you know exactly how good everyone is, you can look at all the players on one team and all the players on the other team and say just how often you expect the first team to win (that is, it's not deterministic - sometimes worse players beat better players). If you don't know exactly how good everyone is, you can work backwards - if one team beats another team then probably the players on the winning team are on-average better than the players on the losing team.
Now consider an individual player who we're trying to rank and suppose we know how good everyone else is. If you have no idea how good she is, but you see that her team just won a game against a team whose members were on-average better than all of the other members of this player's team, then all of the information you've got suggests she's probably better than the average player on the other team. If you've got a probability distribution of player skill across all players, you can come up with an initial most likely skill value for her. If she loses her next game then you might drastically revise your estimate of her skill downward. But after she's played a bunch of games you're going to be pretty confident that you've got a good estimate of her skill - new games aren't adding much new information - and even if she wins a game your system says she probably would lose you won't adjust her rank up too much. If you use hotslogs you might have noticed how players with few recorded games see huge MMR jumps while players with lots of recorded games barely move after each new game.
A problem for this sort of system is that players can get better at the game. If a player is constantly improving, your system might badly lag their true skill even as it thinks that it's got a very confident estimate. You don't want to weight the very first match a player ever played the same as the most recent one they played if there are 500 matches in between. That first match is probably not very useful at all for judging how good the player is now.
People's concern (and I don't really know how justified this is) about Blizzard's system is that players' old games might be following them around for far too long. People aren't necessarily asking for a total blank slate, but just for the opportunity to show the system that they've significantly improved. They feel like it takes far too long for someone with hundreds of games played to move from some MMR to a higher MMR, even if they really ought to be at the higher MMR. There's a balance that needs to be struck between keeping people's MMRs stable and allowing them to drift in response to real changes in skill.
I'm unsure how "grinding ranks" is supposed to work, personally. I'd thought that, absent the skill bonus from having a hidden MMR significantly higher than the one implied by your rank, gains and losses of rank points are roughly symmetric. I guess people could random walk up a couple ranks and then quit forever? That doesn't seem like a huge issue. But you mention going from 20 to 5 when you're supposed to be at 20 and I'm having trouble seeing how that can happen (edit: outside of a one-time shift when they change where the cutoffs are, which I guess is part of what motivated the reset they just did, but you seem to be talking about needing to do this every season).
Also problematic, if someone is playing Zeratul at Level 12, they might be playing much better than if they're using Stitches at Level 1.
However, both of these games factor into the same MMR equally, so if the person loses five games as Stitches and goes back to Zeratul, they now get matched against people who they majorly outclass if the MMR has been notably impacted.
Similarly, they probably lost all their Stitiches matches because they were expected to be performing absolute top tier with a hero they had never used before.
Over time, the system heavily discourages people from trying new heroes, because the game expects them to always be playing their best unless they just constantly lose games on their new heroes, and then proceed to stomp over everyone when they go back to their mains.