When injecting a property whose setter expects say a Set, special handling is performed (split string with comma and build a set before injection ; List, Map, byte... types are also handled with special code).
But this is performed before references are resolved, thus this does not work if myUrlsSetRef is already a Set :
obj.urlsSet = $myUrlsSetRef
ReflectionBuilder.applyProperty() builds a Set containing a single element $myUrlsSetRef, then resolves $myUrlsSetRef : this wraps the referenced set into a new set with 1 element.
Workaround : create a fake setter with Object argument type.