your characters lack personality
More than anything, I think this is a problem. Your character is ramrod straight with little or no distinguishing features. No wonder you're having trouble shading - there's no VARIANCE to play with the light. Convincing shading is about how the light plays across a surface, and yours might as well be a peice of cardboard for all the depth it has.
I took some time and did a little experiment to see if I could explain how to make a more interesting character.
0. Here's your original.
1. Step 1, I'm changing the pose. The original tells us almost NOTHING about what kind of character this is. After looking closely at the sprite, I noticed his shirt seems a little bit thick; I decided this was a hoodie. How about a slacker, then? Baggy pants, hoodie, hands in his pockets, leaning over forward. That has so much more personality to it.
Looking at that pose, you instantly understand something about who this character is - his body language says it all. I've also darkened the inner portion of the shirt to make it easier to tell apart from the sleeve.
2. Now it's time to make him less flat. Get rid of that helmet hair! No one wants to see that. There's nothing interesting about helmet hair. Instead I'm giving him some longish hair for a boy, reinforcing the slacker look. Also dropped some bangs down, which makes him seem messy.
Next, A simple accessory - a backpack. This not only tells us more about him (He's probably going to school) but adds interest and distinctiveness to his sillhouette. It'll also give us something fun to animate later. In addition, I'm tagging on a seam line to his sleeve, as this makes it much easier to tell where his arm is and what it's doing, in addition to looking nice.
3. Now for colors. You're using a lot of bright saturated colors for your character, and then his torso is a dull grey. I'm not really a fan of this color selection. It draws a huge amount of attention to his legs and shoes, with the heavy saturation.
I've gone for a desaturated reddish motif here. The backpack is green, the complementary color of red, to add some nice contrast. Notice how it's easy to tell his individual bits apart, but when you squint, his whole body forms a clean sillhouette? This is a huge deal. The colors unify him, making a unit, rather than a bunch of unattached parts.
You'll notice things are quite dark all of a sudden - the reason for this is that I like to start dark and shade lighter. I think it puts you in a more sensical mindset for this sort of thing than starting light and shading darker.
4. Now the final step, shading. this could be a whole explanation in itself, but I'll try to go over the important parts. Things you want to keep in mind are Contrast, Readability, and Light Direction. I've put a little sun in place showing you a rough light direction, but I'll be frank - I'm cheating the light direction bit here. The important thing to keep in mind is that light is your tool for making the sprite have DEPTH. That is what you are trying to accomplish. The "belly" area on hoodies tends to bulge out, so I'm defining it a bit with light. Similarly, I've drawn light down the front of the pants and then broken it up with "folds" of darkness. In the bottom right I've got a sketch of the kind of logic that went into shading the pants. It's really all cylinders, when you think of it.
With the hair, the bangs are key - you don't want to get overzealous with hair highlights or you'll make him look like a girl. This is especially true with black hair. The backpack I've given just enough light to define its shape, and the sleeves are barely even shaded at all - it's okay to leave things flat sometimes, especially if they already have detailing on them. The face is just a quick outline of darkness, with a bit more underneath the bangs; barely more than a pillow shade, but it gets the job done when your face is so simplistic.
You'll notice I also did a few touchups to the final one; couldn't help myself. Sometimes intuition is what you need, and it pays to frequently zoom way out and look at the sprite at "natural" resolution for your own sake. That, more than anything, will make it extremely clear when something isn't looking right, or blending together confusingly, or just ugly. Clarity and harmony are key.
Hopefully at least some of this makes sense!