I find the PointerProperty behaves differently when used within a PropertyGroup vs when used in an operator like you are doing. Inside an operator it always seems to throw a registration error saying it doesnβt support data-blocks. Even thought the Blender documentation says:
Instead of trying to do it using a PointerProperty, you could try using a StringProperty, although you need to do one extra step of writing a draw() method (which, I believe, you are doing anyway):
Oh, looks like I missed the bone part of the question.
You can search for the bones in the selected armature by conditionally rendering the bone property in the draw() method, similar to @nezumi.blendβs example: