Thanks for attaching the sample project and sorry for the inconvenience!
The problem is that the existing attachments have a local rotation of 109 degrees relative to the bone, which you perhaps never notice when setting things up in Spine. Spine does not store rotations at the slot but instead stores them at the RegionAttachment. Now the attached Sprite needs to receive these 109 degrees of rotation as well.
The following code shows two ways how you can achieve the proper rotation:
public void AttachFrontArmSprites()
{
// Variant A
var skeletonComponent = GetComponent<ISkeletonComponent>();
var slot = skeletonComponent.Skeleton.FindSlot("frontLowerArm");
float rotation = ((RegionAttachment)slot.Attachment).Rotation;
Shader attachmentShader = Shader.Find(DefaultStraightAlphaShader);
attachment = sprite.ToRegionAttachmentPMAClone(attachmentShader, rotation : rotation);
slot.Attachment = attachment;
// Variant B
var sourceMaterial = skeletonComponent.SkeletonDataAsset.atlasAssets[0].PrimaryMaterial;
var slot2 = skeletonComponent.Skeleton.FindSlot("frontUpperArm");
Shader attachmentShader2 = Shader.Find(DefaultStraightAlphaShader);
//attachment2 = sprite.ToRegionAttachmentPMAClone(attachmentShader);
attachment2 = (RegionAttachment)slot2.Attachment.GetRemappedClone(sprite, sourceMaterial, applyPMA);
slot2.Attachment = attachment2;
}
Note that there should be some null-checks added, they are left out above to keep things more compact.