OK, I think I understand.
There are 8 axis at 16 bits each in the descriptors, so that's correct, however your //comments suggested there where 9 axis.
0x95, 0x04, // REPORT_COUNT (5)
I assume that is just a error with the comment.
There are 32 buttons at one bit each, so that is correct, however your comment suggested there are 48 buttons.
0x95, 0x20, // REPORT_COUNT (48 )
Just another error with the comment I assume.
The HAT switch has 16 bits declared, so that is correct.
I can't tell what 'repID' refers to in descriptors. REPORT_ID is mentioned several times with several different bit values.
Here is a pastebin of the descriptors