We have done some more investigation and found that applying the selectors "MessageType='TS' OR MessageType = 'SC'" whilst creating the consumer is what seems to be responsible for the vast majority of the duplicates:
darwinSession.CreateConsumer(darwinTopic, "MessageType='TS' OR MessageType = 'SC'");
We two systems at the same time for about an hour and found the following:
System with filter
Duplicate messages received: 131693
Messages not received
(compared to the other system) : 17018
System without filter:
Duplicate messages received: 2812
Messages not received (compared to the other system): 39
These figures seem to point to a bug when using the filter - maybe only in the C# library.
From now on, we'll use it without the filter and filter it ourselves.