One must not be quick to dismiss this as a 'weakness' of the Church. One must understand that the Church's teachings - amongst many other things - emphasise two important topics that also happen to be relevant to the socio-political circumstances in the United States. The first is a deep-seated respect for life in all its forms, which has led to the moral stance against abortion, contraception and gay marriage, while the second is a call for social justice to help the poor, which has led to its extensive charity programs that make the Catholic Church arguably the largest charity organisation in the world. Both of these are closely related in Catholic teaching, as they are all extensions of the same basic principle of respecting basic human dignity. :thumbsup:
Unfortunately, in the United States, the parties split these two issues between themselves. The Republicans are the flag-bearers in support of life, while opposing social justice. Democrats claim to support social justice, while dismissive of our respect of life. It also happens that issues of abortion and gay marriage are non-negotiable issues in Catholic morality, which should put Catholics closer to the Republican camp, but it's never as simple as just that. As a result, depending on how much each individual Catholic emphasises one teaching over the other, the Catholic voting bloc becomes split.
The teachings were always meant to be closely related, but due to the way the American political system is structured between two big parties, they appear to be mutually exclusive (and indeed, many American Catholics believe this to be the case as well). Of course, there are many other issues that Catholics take into consideration when choosing a party to vote for, but as far as I'm aware, these two teachings seem the most important when comparing Catholic Democrats and Catholic Republicans.
The Evangelicals appear 'consistent', but we must remember that historically, the Evangelicals have been the backbone of the Republican party, and the Republicans draw their values and people chiefly from the Evangelical camp, and therefore they appear to agree most often. There is no coincidence that the Evangelicals would seem most consistent.
This is not the fault of the Catholic Church. It is a failure of the political system to properly accommodate the teachings of the Catholic Church in its entirety. We only have to blame a long, painful history of anti-Catholicism for denying the Catholic Church a platform to stand up for itself, until only recently. By then, Catholics were already divided, and those hardliners in their respective parties started listening to the party whip more than they listened to the Magisterium, leading to the present situation where you have Catholics who openly support abortion or oppose helping the poor. :(