I can't prevent class, derived from CollectionBase from being passed ByRef... That's my problem. I though of ref/out, but it doesn't seem be to be useful in my case.
Eventually I've got it sorted by the way... The lesson I've learnt from that is you can't reuse literally ANYTHING except of primitve values from existing colleciton, unless you want your collection to share address space with it's orginator (with all consiquent problems)...
I've tryed to create new collection and re-populate it with items of existing one (thought it'll separate them) — not gonna work... By times it looked like a feaver...
The solution was to use primitve proveprites of each item and reacreate item themselvs, rather than set them as as children for brand new collection.
Not too elegant but works.
Cheers.