We are currently with Paychex and are looking to change, and I am not looking to go to ADP. I haven't found the solution yet, but am talking to several other providers.
However, I do currently get a labor distribution report from Paychex, so I'm not sure why you can't. When we process payroll, we can enter a different branch and department for an employee's hours, and those hours show up under the correct department. For instance our maintenance employees charge their time to the department getting the work done, not to their own department.
Are you trying to do something different than that?