Thanks Keith - this is starting to make more sense now.
When NCrunch analyses your solution, it traverses the relationships between projects and stores them as part of its working model. These relationships are then simplified into assembly references inside NCrunch's workspaces. You'll notice if you look at one of the generated .csproj files inside an NCrunch workspace that it doesn't contain project references - only assembly references to very specific DLL files controlled carefully by NCrunch.
When NCrunch identifies relationships between projects, it does this based on the location of the .csproj files. So if your project is said to reference another project at '..\Acme.ClassLib\Acme.Classlib.csproj', then NCrunch will hook up this reference completely regardless of any other attributes.
One way I could see this failing is if you have a project that is somehow included twice within the solution. So basically, one .csproj file that is represented twice inside Visual Studio that can compile into two different versions. I'm not sure how to create a scenario like this as I've never seen it done before, but do let me know if this is something you're working with at the moment.
If you haven't seen it, I would also recommend having a look at the
documentation page that describes how NCrunch works with platform/configuration settings inside Visual Studio. I mention this as your description of your setup suggests that this might give you trouble if it isn't addressed, and it may be related to the problem you're experiencing.
If you can create a cut-down 'hello world' solution to produce the problem, this would be enormously helpful. Assembly/project referencing can become very complex in some situations and with a dummy solution to reproduce the issue, I should be able to help solve it for you very quickly.
Cheers,
Remco