a. You probably want the BoneFollowerGraphic component (you can create one by right-clicking on your SkeletonGraphic inspector and choosing "Add BoneFollower GameObject").
b. Or better yet, your own script that positions your icons only as needed.
If the icon transform is the child of your SkeletonGraphic transform, it's a straightforward assignment.
float scale = canvas.referencePixelsPerUnit;
Spine.Bone bone = skeletonGraphic.Skeleton.FindBone("your bone name");
iconTransform.localPosition = new Vector3(bone.worldX * scale, bone.worldY * scale, 0f);
This is basically what BoneFollower does.
It's also what SkeletonUtility does, but in hierarchy form, which can be slightly more computationally wasteful, depending on the situation.