I've kept up with the anime since it first aired, and I think in order to have a better understanding of Ash as a character, we have to separate game mechanics from the anime. Because let's face it, the anime does not always go with the rules set from the game.
Ash, as an individual is a decent trainer. Not terrible, but not so great either. Every time he goes into a new region, there are new sets of rules, new strategies he has to learn, and new Pokemon he must learn about. The new pokemon can have different combo types never seen before, so any strategy he might have had to beat one certain type must be changed or scrapped all together because it's secondary type might cancel the primary type's weakness. So, of coarse he will make plenty of errors starting off, as it shows in the anime. But, as he reaches the pokemon league, he takes what he learns, and manages to secure a spot on the top 8 or 16, which I think really suits the type of trainer he is. Not perfect, but decent.
Pikachu is his first pokemon, and therefore, his most bonded one. Because of this, Pikachu is prone to make the same mistakes as his trainer, which means he's also a decent pokemon. He may have a higher Special attack, closer to a Raichu's, but because of the naiveness he gets every time he goes into a new region, he makes mistakes, and underestimates the power of the new pokemon he's against. This, (and mixed in with other factors, like clogged electricity and weakened states) is usually his downfall, and why he usually looses during his first few battles against trainers from new regions.
...Though, I have to admit, loosing to a snivy in the first episode is total bullshit, even for me. And, I don't really like Ash all too much, I just have a better understanding of why the writers have him this way.