Thank you for such an interesting question.
One subject I would look into are anchor fields. You can find one in you Engine> EditorResources> FieldNodes folder.
If you place one in your level covering some part of your Geometry Collection, you will be able to have that section stay put to an extent. To accomplish this, you click on your Geometry collection in the level, and search for “Initialization”. Add an element to the array and set the value to the anchor field you placed in your level.
Setting the Initialization Field:
Result:
I always advise in duplicating the asset in the engine and using your copied version.
I understand this will not help you much in terms of your awesome sword implementation, but this may help your characters not bump into walls and have them fall like glass dominoes.