I've long thought that being a psychopath hardly precludes/excuses one from acting morally. If most psychopaths turn out to be anti-social criminals I'd say the blame is ultimately because they failed to identify the value of moral behaviour (to the individual) and logically follow through on the principles which arise. Perhaps because society does not teach these things adequately. If most non-psychopaths turn out not to be criminals, however, arguably it could be a mixture of some people just blindly following their empathy and other people taking a principled stance on things.
My opinion, as someone who has very successfully raised "good kids" with a lot of these types of negative traits: Psychopaths often turn out badly because they are treated so negatively by other people for being different. So they basically get abuse heaped upon them. What goes around, comes around. (In other words: "normal" people who think they are so fucking moral are often assholes who help create monsters.)