Quickbooks, for what it is, does a very good job. But, like any tool, is only as good as the person using it.
There is one rule of thumb to using Quickbooks. Never open a register. If you are editing a register, then you are not using the program correctly.
I finally got tired of all the extraneous stuff and obtained the SDK from Intuit and wrote a new front-end so the Wife and I could use it exactly for what we needed.
It does have a lot of things in it which are not always needed by many people/businesses. And it uses ActiveX for its updates. Bzzzzzttttt. WRONG! That was the first thing to go.
It sound like you need to make use of the 'jobs' functions. Where you start a job and then enter expenses and income for the job. It has all that functionality. Check the help pages.