Marner should have been traded after the Montreal series. It was clear even by then that the Core just didn't have what it took to be a playoff team. What the Leafs needed was a big trade ala Gilmour or Carter/Alomar to show everyone that winning is what matters and it doesn't matter if Matthews and Marner are best buddies. Marner's NMC hadn't kicked in then and his trade value still would have been high. Whoever didn't have the balls to do that should take the blame.
In general though, hiring a GM barely older than the players was boneheaded. The "We can and we will" attitude to giving the players everything they wanted before they had earned it set a bad precedent. Ultimately, I put the blame on Shanahan for hiring an inexperienced GM. That should have never happened.