I haven't been able myself to truly explain that either. According to the game if you recieve a pokemon from a trade without enough badges and if you level up that pokemon (even if it doesnt evolve) it will disobey you. That happens in all the pokemon games and it happened to me once when I recieved a Chatot in Diamond. But in the anime it makes no sense because charmander had already and clearly earned ash's trust, besides in the game that features serves more like a Lock to prevent you from using pokemon way to leveled up and beat the other gym leaders with no problems, but that rule doesn't really has to be THAT strict in the anime (cause its like if it were on real life isn't it?).
I don't think it was ash's fault, i mean he made mistakes as a trainer specially in battle like any NOOB (and still does sometimes), but he clearly knew how to take care of his pokemon and he earned their trust (don't you remember the episode where ash proved Metapod that he can trust him and that's why he evolved into butterfree?), and he has always been a kind hearted, compasive trainer.
I don't thinks its a matter of evolution either, in the games when a pokemon evolves, it remains the same, the nature of the pokemon remains, only the stats and shape of the pokemon change, not its personality, specially when that pokemon was already obeying the trainer (unless the pokemon was already disobeying before evolving of course).
So I think what happend is that the writers wanted somehow that ash had a disobeying pokemon, but they didn't give a clear cause or explanation for that, specially when we all saw how charmander was perhaps the most obedient pokemon ash has ever had (even pikachu has been disobedient to ash). For me it was an error, a planning mistake, whatever. But I'm glad that at the end Charizard became loyal to ash again. I haven't seen that episode you say about dawn and mamoswine, definetly wanna check it out, if what you guys say its true then it means in the anime, sadly, evolution does change the pokemon personality.