Thanks for the response Alex,

Your first suggestion still throws a "Type Mismatch" error, and the second throws a "Can't assign to array"

I tried briefly to export a collection, namely an instance of
System.Collections.ObjectModel.Collection<TestClass>

and received a compiler warning
Warning 1 Type library exporter warning processing 'Tester._TestCollectionClass.GetCol(#0), Tester'. Warning: Type library exporter encountered a generic type instance in a signature. Generic code may not be exported to COM.
In the meantime I'm working around the issue with a trivial kludge fix in the form of a class called ArrayWrapper which is passed an array on instantiation (they're instantiated within the .Net library) and implements .Item() and .Count so I can fetch the wrapped objects one at a time.