Kessel is certainly not a well-rounded player by any stretch of the imagination but I think you are selling him pretty short here. Moody and inconsistent though he may be, the guy had excellent production with next to no help in his Toronto days. To call him 'garbage' is laughable.
He used to have some very good numbers on a TML team devoid of offensive talent besides him. Now, he plays for a playoff team next to Sidney Crosby and Evgeni Malkin and he can't do anything. There are reasons for that.
1) Crosby likes to have line mates who can go to the dirty areas with him and convert on his passes in the slot. A perimeter player like Kessel is of little use to him. Malkin operates very well with shooters like Neal or Kessel, but Kessel needs to fight for space to get his shot off. Kessel just doesn't fight for space.
2) Kessel is an individual who can get frustrated very easily. How many sticks has he snapped in anger on the bench? When he's frustrated, he makes terrible decisions with the puck. When he turns the puck over, he is cooked. He doesn't have the motivation or the sense of urgency to play at least passably well defensively.
3) He's soft and lazy as hell. He will never take a hit or hit someone else to make a play. It's too bad, he and his teammates could score more if he did.
There are other reasons as well, such as his lack of motivation to improve on his game in the offseason. Instead, he prefers playing golf.