It doesn't work like that (pairwise merges) as it would do random pairs and then randomly try to merge them where half of them are already gone.
MATCH (f:ABC)
WITH f.counterparty as counterparty, f.clientName as clientName, collect(f) as nodes
WHERE size(nodes) > 1
call apoc.refactor.mergeNodes(nodes) yield node
return count(*)