Is there a way to change a sprite but keep its bones?

I’ve read through this page: Sprite Swapping | 2D Animation | 6.0.7
And it appears the only viable answer is to have the bones already copied and pasted to an already made sprite in order to do what I want.
However, what I’m trying to do is create new sprites on the fly at runtime, via calls like this

byte[] pngBytes = File.ReadAllBytes(Directory.GetCurrentDirectory() + "\\1.png");
tex.LoadImage(pngBytes);
Sprite sprite = Sprite.Create(tex, new Rect(0.0f, 0.0f, tex.width, tex.height), new Vector2(0.5f, 0.5f), 100.0f);
rightArm.GetComponent<SpriteRenderer>().sprite = sprite;

Which currently works great but completely obliterates the bones/animation mesh previously being used. I actually want to use the previous bones and animation mesh (which are simplified by the starting sprite being a solid square) because I don’t care about accuracy of the sprites deformation, I just care that it deforms at all.

So, is there a way to keep the bones intact on the game object, despite the sprite being changed?

One more thing to add, I figured trying to manipulate the Sprite Skin component live would make this work, since that’s where the bone transform information is stored and what gets overwritten when the sprite is swapped, however it appears this component doesn’t allow adding bones while the game is running, despite removing them when I make the sprite swap. If there was some way to access this component, I’d try that, but I can’t find a way. In script, all the bone information is read-only.

Edit: Worth mentioning that swapping the sprite causes the Sprite Skin component to mention that the new sprite has no “bind poses” and looking this up, I cannot find anyone who has managed to generate bind poses at runtime.

Took QUITE a bit of digging and using the right search terms but my answer was in here.

Note that the link has slightly out of date information. The tl;dr is manipulating a sprite renderer’s MaterialPropertyBlock with SetTexture (the link suggests using AddTexture which is obsolete) to overwrite the texture the sr’s material has.

So did it solve your problem ? Replace sprite without affect bones ? Did it work with a Tight packed sprite replaced by FullRect sprite ?