Testing has to be done all the way through
You first cases come from the requirements.
There should be a whole suite of amplifications from the BAs
Then there will be more enhancements from the designers/devlopers, particularly during rounds 2 .. n, when impact assessments from code/design changes can be done. That's just your test team.
Then there's unit testing and basic integration testing.
To me it sounds like you are doing the throw it over the partition manouvre. You can get a lot better results from integrating the test team, short sharp iterations and rigidly clear functional test cases.
When a test fails early, assess whether it's a show stopper, ie there's no point in continuing until there is a fix or there is still some use to be gained. Bouncing a version back because a caption is spelt wrong and not bothering to check whether the information it annotates is complete rubbish will annoy the heck out of a developer. As will raising issues for each incorrect calculation on a page, when it picked up the wrong input data.
Get an issues tracking system up and running and review frequently. I once got a fault raised that made me decide the test team were cretins, I should never have seen it.
"If you put the surname in the first name box and the first name in the surname box the name comes out backwards on the report."
A couple of other things, don't let your tester raise faults by test cases. It won't let me enter the data and when you fix it so I can, it adds up wrong are two issues, not one with a footnote.
Make a clear distinction between what is a fault ie the developer did not do as specified and what is a change to the specification.
From the other side have your devlopers give the testers a clue on where to concentrate their efforts, and where the fix might have an impact on another area of the functionality, especially if it's already been tested.
The best way to get more out of testing though is to write less bugs and find more bugs before it gets to the test team.
Depends on your code base but DUnit/Nunit type packages can pick up a lot of 'stupid' bugs. This can also be used to give your testers a good deal of confidence about certain aspects of the software.
Automated test tools, though they do have a large training overhead can get you some kick ass improvements as well. But the biggest successes I've seen are from integration and comunication.
Testing isn't an unfortunate overhead because your developers are crap or your designer's misinformed, your BA's not knowledgeable enough or your customers not knowing what they want, it's an integral part of the process.
The first part of a successful test strategy is the key players deciding what do we have to test, what do we think we should test and what do we have to prove we have tested.
Without that, you are wasting your time.
The easiest way to support your team is to have them lean on each other.
If you are blessed with Technical Authors, don't have them testing, they've got enough to do, they can be very valuable at raising issues though, particularly things like installation options, UI consistency, and oops we forgot that bit.
Another trick, customer work shops on alpha versions, feedback, confidence, feeling part of it, seen as value for money and the often missed , that's not a bug it's a feature we find very useful.
Start simple and evolve, after all you've learnt a lot from your first iteration haven't you? It's not a failure, it's an opportunity to improve.