Well the file worked until I started making new presets.
I can get the hole preset to work by editing the HoleCmd.preset file.
By looking at the holes that work and the holes that don't it is clear Inventor isn't saving the hole thread info.
I made a preset for an M8 hole going an inch deep with full threads and this is what was saved out:
<Preset Name="M8 D1" ID="41d56089-5e4a-41d1-a6f1-8e89511e29b7" MruTime="2020-07-02 18:27:16" MrmTime="2020-07-02 18:27:22">
<SeatType Value="IDC_HOLE_DRILL_BTN" />
<HoleType Value="IDC_HOLE_TAPPED_BTN" />
<Termination Value="IDC_TERM_DISTANCE" />
<ThreadType Value="0" />
<ThreadNomSize Value="0" />
<ThreadPitch Value="0" />
<ThreadClass Value="0" />
<DirectionType Value="" />
<FullDepth Value="False" />
<IMate Value="False" />
<ExtendStart Value="False" />
<ThreadDepth />
<DrillAngle Value="118 deg" />
</Preset>
The thread type input should have values with them.
Here is the same for a M5 hole going an inch deep with full threads that seems to work correctly:
<Preset Name="M5 D1" ID="2e0f5b3a-1704-4910-a0cd-c423e7c67004" MruTime="2020-07-02 18:23:05" MrmTime="2020-07-02 18:38:12">
<SeatType Value="IDC_HOLE_DRILL_BTN" />
<HoleType Value="IDC_HOLE_TAPPED_BTN" />
<Termination Value="IDC_TERM_DISTANCE" />
<ThreadType Value="1" />
<ThreadNomSize Value="27" />
<ThreadPitch Value="0" />
<ThreadClass Value="0" />
<DirectionType Value="IDC_HOLE_RT_HAND_CTL" />
<FullDepth Value="True" />
<IMate Value="False" />
<ExtendStart Value="False" />
<ThreadDepth Value="0.394 in" />
<DrillAngle Value="118 deg" />
</Preset>
Problem is it will work for a while then override the settings while saving out a new preset erasing the values.
What I'm going to try is to make all the presets check the code then replace the broken taps by hand. Luckily I only use about five taps. This would be real annoying if you used more.
This is the value that determines the thread:
<ThreadNomSize Value="27" />
I believe the 27 is the # the M5 is in the drop down menu. Change that value to move the tap up or down.