What you're trying to do is produce an API on a dll using several input assemblies. Furthermore, the two dlls are compiled using different languages. As you may imagine, this can lead to some unusual results.
Now, .NET is meant to be language-agnostic, but there's obviously some extra metadata on the F# assembly that's required to consume it properly from F#.
My guess is that the F# compiler can only deal with an assembly written in one language - it either treats a dll as C#/VB, or F#, and it uses the FSharpInterfaceDataVersion assembly-level attribute to distinguish the two. Because you've got types from two different languages in the same assembly, the compiler is getting confused, because it either tries to treat F# types as C#, or C# types as F#, it can't mix it.
This looks like a limitation of the F# compiler. If you want this fixed, you could ask the F# team to specify FSharpInterfaceDataVersion on a per-type basis, rather than per-assembly.