Метаданные отличаются от элемента, вы можете иметь разные метаданные для одного элемента, но только одно значение для метаданных.
Используя Reflector в сборке Microsoft.Build.Engine ( BuildItem.EvaluateAllItemMetadata (...) ), вы видите, что метаданные для элемента хранятся в словаре, поэтому для заданного имени метаданных вы можете иметь только одно значение.
Обходной путь в вашем случае - слишком использовать метаданные в качестве имени для элемента, например:
<ItemGroup>
<Assemblies Include = "S:\SVN\SomeDirectory\src\">
<excludeAssembly>exludeAssemblySet</excludeAssembly>
</Assemblies>
</ItemGroup>
<ItemGroup>
<exludeAssemblySet Include="AssemblyName_1"/>
<exludeAssemblySet Include="AssemblyName_2"/>
<exludeAssemblySet Include="AssemblyName_3"/>
<exludeAssemblySet Include="AssemblyName_4"/>
</ItemGroup>
// Approximative syntax, I don't know what you want to do
var itemData = itemTask.GetMetadata("excludeAssembly");
BuildItemGroup excludeAssemblies = project.GetEvaluatedItemsByName(itemData);