VGM is a raw dump of register writes in time appropriate up to 44100 times per seconds, so it has no internal concept of bpm. You're stuck using the BPM detection tools, though would you have more luck if you have a VGM player that mutes everything except the rhythm channel?
I want to get into midi making, and I'm tried converting to a midi, but that just outputs a fast midi with a BPM of 140, All midis outputted from the VGM2MID I have has 140 BPM and sounds about twice as fast. Also, Valley, do you have a link to your VGM2MID? The one I have is rather old. Doesn't even have bpm option. I think it's just a GUI version of the old DOS VGM2MID.
Project:NASF 2, and many other experiments in animation and game design.
These guys beat me to part of what I was going to suggest. Using in_vgm, mute out everything but percussion, or at least something with a steady rhythm that's either full of gaps or very percussive. Render that to a wav file, and open it in Wavosaur. Select an even number of beats in the waveform (use some precision), preferably four or a binary number of beats, and go to Tools > BPM Calculator. I've found this method to be very accurate. Just use a little bit of care in your selection.
Project:vgm tools and vgm packs, other random projects
It happens because it does the "Note On" command before it sets the new note frequency. I've never seen that on the YM2612 before, but it's quite common on the PSG.
Although these small (zero-length) notes annoy me, too, I haven't found a good way to get rid of them.
You can only use a small workaround: set the "Pitchwheel Sensitivity" to 24 (or maybe even higher).
btw: BPM is circa 138 (the loop is most accurate with "Multiply 222 / 256" = 138.38 BPM), but the sound engine seems inaccurate.