ok, it seems I finally found the solution (after probably a week of delay):
The wrong part in
sourceDb.WblockCloneObjects(idsEntitiesToCopy, curDb.CurrentSpaceId, new IdMapping(), DuplicateRecordCloning.Replace, false);
is that I passed "new IdMapping()" directly to the calling of the method.
I MUST be defined outside first i.e. as
IdMapping idm = new IdMapping();
and then the method MUST be called with the variablename passed to it like this:
sourceDb.WblockCloneObjects(idsEntitiesToCopy, curDb.CurrentSpaceId, idm, DuplicateRecordCloning.Replace, false);