Gender differences and form differences have unique flags in the data, so they're easy enough to identify.
I wonder if the PID was truncated to something else, so that the spots show up correctly.
It would be why I can't find the PID but the spots show up right.
It shows the moves what Quilava have, and the level being 25.
If it at least showed the IVs, I could try to work backwards to calculate the PID
For the section that has Quilava, this is literally all the data there is in the structure:
If you're curious, this is the line of code.
u16 => 2 words
Example: Species => 9C 00. Then take endianness into account, reverse the words and you get 00 9C.
Convert that from hexadecimal to decimal (windows calculator in programmer mode can do that) and you get the value 156.
156 is the Dex ID value of Quilava.
u8 => 1 word.
Example would be to look at level. After linearly looking at all the values, level's value is 19 in hexadecimal.
Now convert that to decimal, and you get the value 25. So the level is 25.