"insert" and "derive" have a different purpose.
Derive can go two ways as you can derive a component out of the original assembly context is was developed in into it's own file into the data panel then you can use that component in other assemblies.
In this new assemblies you can modify that derived component without affecting the original.
However, changes made to the component in the original assembly (where it was developed) will propagate into that new assembly.
This is a powerful feature and before using it you should aware of the consequences. Usr it as a last resort when other methods fail.
Insert only goes one way and the inserted component cannot be modified from within an assembly it was created in. That is intended!
If you want to combine an inserted component with a new body then you'll have to create a copy of the body from the inserted component.
The best way to do that is to use the boundary fill operation in the Patch environment (Surface tab is you are using the new UI preview). that will create an independent copy of that body.
Then you can happily continue to use the linked (inserted) component 😉