Hi Melissa,
Let me try to answer your question, with the caveat that I'm missing part of the back story. Specifically, it sounds like Google wasn't crawling your site for awhile - any idea why?
If Google is indexing duplicate pages for much of your content, then in all likelihood you won't reach your ranking potential for that content. It sounds like this is because you changed your URL structure, and Google has crawled the new URLs without crawling/de-indexing the old URLs. Does this sound about right?
One solution, and probably your best bet, it to maintain a sitemap of the old URLs. This way, Google is more likely to crawl those URLs, discover the 301 redirect, and de-index those pages much faster. Ideally this is setup before the change in URL structure. At this point, it may be a major pain... if you catch my drift.
(there are a couple ways you could accomplish this, both require a lot of work. You could rewrite the URLs using Excel magic, or write a script to generate an old sitemap. Or you could very briefly switch back to your old url structure, generate a new sitemap to save, and then switch back)
Another method would be to use the URL removal tools in Google Webmaster tools. If your old URLs all used a unique directory structure (that differed from your new directory structure) you can remove entire directories from Google's index with the click of a button.
Regardless, whatever way you choose to remove those URLs, doing so should help improve your rankings.
Hope this helps! Best of luck with your SEO.