Below is a breakdown of what's happening in the header.
It should be noted that the input count is what handles all timing related stuff. That field can be converted into seconds by dividing it by 234 which comes straight from the Citra source code. I have tested this pretty extensively and confirmed that it is very accurate.
Input count can also be converted to frames by multiplying it by 0.255689103308912 and rounding to the nearest integer. This is not currently in the Citra source code, but it is based on extensive testing done by me that I'm working on getting merged into the main Citra branch.
Basically all of my documentation can be found here.
Once again, I feel I'm a guest here, mostly, so I would never ask anyone to take this on for me. I will be working to see what I can throw together based on what I know.
nice big bendian diagram lol
(great work on the TAS!)