Ok, added the unit test. Here is the main description of what is happening:
1) You register item in ServiceLocator (Catel)
2) Internally, it considers itself as owning container
3) It does however, register the type in Unity as well (but not as instance, but as type, because type is not instantiated yet)
4) You retrieve value from ServiceLocator, and it considers itself as owner, and will create an instance.
The only solution I can think of for now is to always let the type be instantiated by the owning container as soon as synchronization kicks in.