Hiring online is tricky. My feeling is that much of your problem probably comes from not using the right hiring technique. What you want to do when hiring freelance talent online is try more than 1 or 2 sites at a time.
Make a post on 5 at once for the same project. You can start by going back to oDesk, Elance, and add some more – such as Guru and Freelancer.com. When you do, make a good post. What I mean by that is cover all the details and lay everything out so that the freelancers know everything that is expected of them – including what resources they need, the steps to take to get the job done, and the what the finished product should be.
If you don’t know the answers to these questions yourself, then maybe you should do a little research and planning in preparation to post the job. When the applications come in, you should have a set criteria already laid out by which you plan to judge applicants. One helpful tool that you can use that most people never think of is a spreadsheet. In fact, there is one that I know of for Elance in particular and info about it can be found in a Youtube video: http://youtu.be/sBM-EBjnU6M
This can be a valuable tool to help sort through applicants and get a real feel for who is best. It will rank individuals using a single score that takes all important factors into consideration. From there, you can start from the top of the rank and go down the list looking for the particular qualities that each individual has to bring to your particular project.
You will want to select 1 person from each site where you posted the job. That will be 5 workers. You should hire them part-time only and do a test run with them. It is probably better not to even tell them that it is a test run though. When making your post, just say you only need a brief, part-time worker for a short but important project. I would tell them that future work is possible.
After a short time while working with the contractors, you will be able to tell who is the best among them. And, of course, this will be the person that you hire full-time. Don’t just throw away the others. If some of them are good too, then let them go gently and tell them that you won’t be needing them any further, but that they will be on your list of “go to guys” in the future.
After it’s all done, you might even want to make another post and find more people that you are willing to work with. This way, you can build up a larger list of “go to guys” and maybe even find a better contractor than your original choice. This is of course assuming that you are doing a long-term project whereby you will continuously need to have someone working. This is a process that many people don’t go through. However, if they didn’t, I think there would be a lot fewer people having bad experiences.