A few things …
1) Use System.Text.StringBuilder rather than string concatenation to build up your CAML. Concatenating large strings does bad things to the memory. (Each string is a new object each progressively larger than the last.)
2) Have you verified that Project name’s interna, name is really Project_x0020_Name? This wouldn’t always be the case – particularly if the field was renamed.
3) The syntax for a lookup field appears to be … Row ID;#Value … where RowID is the ID of the row (this appears correct) and Value is the value of the selected lookup field in that row. It looks like you gave it back the field name and not the value of the field in that row. If you’re using ID I believe the syntax would be 9087;#9087
FYI, I spent a lot of time over the last few years working with Workers Compensation organizations… I’m continuously reminded of what a small world it is.