"QBO Payroll help chat told me it was a TSheets problem and TSheets help said it's a QBO Payroll problem."
This sounds too familiar. They both should have known this issue by now.
Unfortunately, QuickBooks Online (QBO) doesn't handle payroll by customer/project at this time. Even if you've just QuickBooks Payroll, it will still post directly to general ledger accounts. Currently, there is no option in QBO Payroll to auto-populate the wages by Customer/Project as they have in QB desktop (Payroll Item List/Service code). In other words, there is no way to post hours worked or labor cost by customers/projects in QBO (either through QBO Payroll or TSheets app) at this time.
(Also, I have not heard of any new feature updates coming on this known issue, sorry!)
Just last week, one other QBO user also posted the same question. You can check out this link if interested: