You need to distinguish between reference data like "01-detailed design" which is shared by many projects and the use of that reference data, like "Project X has a low level task of type 01-detailed design".
You need a structure along these lines (I have not concerned myself with levels of task here):
Project ---< Project Task >--- Task
Project Task will be where you record costs for a particular Project/Task combination. For example: