You do get the expected result. You will need to use recursive methods and GetChildren to make a “flat” list or stack if this is what you want.
The ConfigAccessViaSDK sample illustrates how to see the result of GetItems or GetItemsByKind.
Alternatively use this very neat approach. https://developer.milestonesys.com/s/question/0D53X00006Sow5dSAB/how-to-get-the-available-cameras
I tested a method called “CheckChildren(Item parent)” in CameraStreamResolution sample. This is a standalone sample, but I copied the method to my test plugin, and it works. (In the method, Kind.Camera is used as akind so you will need to change it for sure.)