While I realise that you've posted this because of SpecFlow, I'm wondering if your problem is really that different to a normal code refactoring problem. Do you really want to throw everything out and start again, or do you just need some help in order to improve the codebase?
Personally (having done the wrong thing before) I would now keep what you have and simply start to refactor it so it's cleaner. I tend to use TeamCity to have a nightly build that checks the codebase and detects code duplicates. That way I can come in every morning first thing and kill off the worst one. If you would rather do it more interactively, then you can either use VSs Analyze->Analyze solution for Code Clones, or some other means of finding them, and then use tidy them up.
The advantage to doing this as you go along rather than cleaning up and starting again, is that you don't stop your development. If you throw everything away, you might be days or weeks before you can run your test suite again. If you do it a bit at a time, you can get interrupted to do something critical and you only have to finish your current refactor before you can run your tests.