Subclassing property group class problem
Only use bpy.types.PropertyGroup for the registered class type.

The property group and bpy.props properties are wired up as properties through the "rna voodoo magic" internally with blender when registered.  

Similarly as often seen with operators and panels, only give the registered class the type you are registering. For want of a more technical description.  Refered to as "Mix in classes" in panel link

eg below the B propertygroup class inherits A.  All annotations of B and A become properties of the pointer property instance..

import bpy

class A ():
    x : bpy.props.StringProperty(name = "X", default="Foo")

class B (A, bpy.types.PropertyGroup):
    ind : bpy.props.IntProperty(name = "Prop")

#bpy.utils.register_class(A)
bpy.utils.register_class(B)

bpy.types.Scene.testvalue = bpy.props.PointerProperty(type=B)
print(bpy.context.scene.testvalue.x)

#bpy.utils.unregister_class(A)
bpy.utils.unregister_class(B)


Prints "Foo" to the system console.