The Republicans are unable to win on these issues simply because they do not win the discussion. They oppose ideas and behaviors: illegal immigration, high taxes, government run health care, defense of marriage, contraception, etc. The Democrats then identify those behaviors to specific groups: latinos, the rich, the poor, gays, females, etc. to set an us vs. them mentality.
Why is that not considered racist/sexist/homophobic/ageist???? Labeling a group according to behavior used to be called stereotyping, and the Dems never get called out. We need to command the discussion.