Your team should use separate software to create the 3d models. Why? Because then you can export them into some file like FBX or something which can be used by Unreal and other software. So yeah, you can use characters from other teams if you have those compatible data files (I don’t know what kind of different file types there are, but you can do it). This is also true for Rigs and Animation.
According to “worlds”… Well I guess that depends what you mean with “worlds”. If this is just a huuuge bundle of 3d models, then yes, you can do that on the same way as explained, but this may not be the best method, because the time to import all those files will be huuuge as well I would guess. But smaller chunks, no problem.
If you have functionality in your world, then you may run into some problems. Unreal uses the Blueprint system and C++ as the programming language. If I’m informed correctly then Unity uses also some visual scripting, but the programming language is C#. So If you create something in one engine and want to migrate it to an other engine you will probably not be able to. You have to export the files you use in the engine, so you can have a data type which is compatible with the other engine, like said file type “FBX” for 3d models.
I don’t know what you can export and what not, because I don’t use unreal for everything and the engine is not designed to do everything, but it can do pretty ■■■■■■■ much. You can create your own 3d models with brushes and create static meshes which you can use, but exporting them and use them in other projects? Could get messy. So you should start with several programms which focus on creating 3d models, like Blender or Maya, etc. So you can be sure to use those 3d models everywhere if your file type fits your needs