Setting initial position using updateMatrixWorld

I have a current question here( Parenting object to bone (getting correct position)), but I want to reframe the question in a slightly different way with some code this time.

I’m attempting to load a beard onto a character. I want to be able to load different beards. The beard imports in the correct position when the model is in the rest position, but if I re-pose the model, the beard still imports in the same location (i.e. the correct position for the rest position). If I initially load the character and beard in the rest position, and then re-pose the character, the both the model and the beard are moved correctly.

 parentObjectToBone(category, object) {
     let bone = this.getBoneByCategory(category);

   let child = object.children[0];
   THREE.SceneUtils.attach(child, object, bone);


I also tried updating the world matrix for the parent inside the attach method, but I’m fairly sure this wouldn’t make any difference. Is it possible this has to do with the method of exporting the animation from blender?