I always start a new game, quickly run through the tutorial and find which ever vendor I've changed in fort joy. Again same results. Hence why I think the behaviour is odd.

I've classed all the skill books into their class type (https://imgur.com/a/lxjIM), as that screenshot shows all rogue skills are in same group and 1 of the 3 is showing. (Had another issue where they weren't showing because of faulty root templates, but that's fixed as the editor shows them in game now). But I've experienced it with all groups in the treasuretable.

Will try changing the version number as fireundubh suggested. And do a minor update to see if anything changes in the behaviour.

Update: Now I can't get treasuretables in the editor to update again, despite restarting the whole thing. New entry is there "GlacialSurf" but won't show up on NPC despite their treasure table says it's group is there. - Remade a second root template again and it fixed (2nd time in 2 days this has happened).

Sreenshot of NPC with correct group in his table (https://imgur.com/a/LvciL) Code for treasure table:

Code
<?xml version="1.0" encoding="utf-8"?>
<stats stat_object_definition_id="e4012e18-6a6b-4f40-aefa-c83b078c136c">
  <stat_objects>
    <stat_object index="0" color="#FF4169E1" is_substat="false">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="ST_SkillbookWaterNew" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Water_ArctricBreeze" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
      </fields>
    </stat_object>
    <stat_object index="1" color="#FF4169E1" is_substat="true">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="ST_SkillbookWaterNew_substat" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Water_GlacialSurf" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
        <field name="Using" type="BaseClassStatObjectFieldDefinition" value="ST_SkillbookWaterNew" />
      </fields>
    </stat_object>
    <stat_object index="2" color="#FF4169E1" is_substat="true">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="ST_SkillbookArcticBreeze_substat" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Water_DrownLungs" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
        <field name="Using" type="BaseClassStatObjectFieldDefinition" value="ST_SkillbookArcticBreeze" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
      </fields>
    </stat_object>
    <stat_object index="3" color="#FF4169E1" is_substat="true">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="New_Stat_0" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Water_FreezingTouch" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
        <field name="Using" type="BaseClassStatObjectFieldDefinition" value="ST_SkillbookArcticBreeze" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
      </fields>
    </stat_object>
    <stat_object index="4" color="#FF4169E1" is_substat="true">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="New_Stat_1" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Water_PurifiedTouch" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
        <field name="Using" type="BaseClassStatObjectFieldDefinition" value="ST_SkillbookArcticBreeze" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
      </fields>
    </stat_object>
    <stat_object index="5" color="#FF4169E1" is_substat="true">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="New_Stat_2" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Water_WaterCannon" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
        <field name="Using" type="BaseClassStatObjectFieldDefinition" value="ST_SkillbookArcticBreeze" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
      </fields>
    </stat_object>
    <stat_object index="6" is_substat="false">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="ST_SkillbookAirNew" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Air_DeafeningRapture" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
      </fields>
    </stat_object>
    <stat_object index="7" is_substat="true">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="ST_SkillbookDeafeningRapture_substat" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Air_Diathermy" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
        <field name="Using" type="BaseClassStatObjectFieldDefinition" value="ST_SkillbookDeafeningRapture" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
      </fields>
    </stat_object>
    <stat_object index="8" is_substat="true">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="New_Stat_3" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Air_ElectricalStorm" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
        <field name="Using" type="BaseClassStatObjectFieldDefinition" value="ST_SkillbookDeafeningRapture" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
      </fields>
    </stat_object>
    <stat_object index="9" is_substat="true">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="New_Stat_4" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Air_IonRadiation" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
        <field name="Using" type="BaseClassStatObjectFieldDefinition" value="ST_SkillbookDeafeningRapture" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
      </fields>
    </stat_object>
    <stat_object index="10" is_substat="true">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="New_Stat_5" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Air_ThunderingRoar" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
        <field name="Using" type="BaseClassStatObjectFieldDefinition" value="ST_SkillbookDeafeningRapture" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
      </fields>
    </stat_object>
    <stat_object index="11" color="#FF006400" is_substat="false">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="ST_SkillbookEarthNew" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Earth_BecomeGolemlike" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
      </fields>
    </stat_object>
    <stat_object index="12" color="#FF006400" is_substat="true">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="ST_SkillbookBecomeGolemlike_substat" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Earth_ExcorcistSpray" />
        <field name="Using" type="BaseClassStatObjectFieldDefinition" value="ST_SkillbookBecomeGolemlike" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
      </fields>
    </stat_object>
    <stat_object index="13" color="#FF006400" is_substat="true">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="New_Stat_6" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Earth_PetrifyingTouch" />
        <field name="Using" type="BaseClassStatObjectFieldDefinition" value="ST_SkillbookBecomeGolemlike" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
      </fields>
    </stat_object>
    <stat_object index="14" color="#FF006400" is_substat="true">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="New_Stat_7" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Earth_PlagueGrenade" />
        <field name="Using" type="BaseClassStatObjectFieldDefinition" value="ST_SkillbookBecomeGolemlike" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
      </fields>
    </stat_object>
    <stat_object index="15" color="#FF006400" is_substat="true">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="New_Stat_8" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Earth_SandmanShift" />
        <field name="Using" type="BaseClassStatObjectFieldDefinition" value="ST_SkillbookBecomeGolemlike" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
      </fields>
    </stat_object>
    <stat_object index="16" color="#FF006400" is_substat="true">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="New_Stat_9" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Earth_ThrowAlcohol" />
        <field name="Using" type="BaseClassStatObjectFieldDefinition" value="ST_SkillbookBecomeGolemlike" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
      </fields>
    </stat_object>
    <stat_object index="17" is_substat="false">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="ST_SkillbookFireNew" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Fire_BurnAlive" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
      </fields>
    </stat_object>
    <stat_object index="18" is_substat="true">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="ST_SkillbookFireNew_substat" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Fire_DevourFlames" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
        <field name="Using" type="BaseClassStatObjectFieldDefinition" value="ST_SkillbookFireNew" />
      </fields>
    </stat_object>
    <stat_object index="19" is_substat="true">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="ST_SkillbookBurnAlive_substat" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Fire_BurningTouch" />
        <field name="Using" type="BaseClassStatObjectFieldDefinition" value="ST_SkillbookBurnAlive" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
      </fields>
    </stat_object>
    <stat_object index="20" is_substat="true">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="New_Stat_10" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Fire_InfernalSacrifice" />
        <field name="Using" type="BaseClassStatObjectFieldDefinition" value="ST_SkillbookBurnAlive" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
      </fields>
    </stat_object>
    <stat_object index="21" is_substat="true">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="New_Stat_11" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Fire_MeltGround" />
        <field name="Using" type="BaseClassStatObjectFieldDefinition" value="ST_SkillbookBurnAlive" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
      </fields>
    </stat_object>
    <stat_object index="22" is_substat="true">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="New_Stat_12" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Fire_Smog" />
        <field name="Using" type="BaseClassStatObjectFieldDefinition" value="ST_SkillbookBurnAlive" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
      </fields>
    </stat_object>
    <stat_object index="23" color="#FF483D8B" is_substat="false">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="ST_SkillbookDeathNew" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Necromancy_BloodCloud" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
      </fields>
    </stat_object>
    <stat_object index="24" color="#FF483D8B" is_substat="true">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="ST_SkillbookDeathNew_substat" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Necromancy_SleepMiasma" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
        <field name="Using" type="BaseClassStatObjectFieldDefinition" value="ST_SkillbookDeathNew" />
      </fields>
    </stat_object>
    <stat_object index="25" color="#FF483D8B" is_substat="true">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="New_Stat_16" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Necromancy_DreamEater" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
        <field name="Using" type="BaseClassStatObjectFieldDefinition" value="ST_SkillbookDeathNew" />
      </fields>
    </stat_object>
    <stat_object index="26" color="#FF483D8B" is_substat="true">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="ST_SkillbookBloodCloud_substat" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Necromancy_BoneBreak" />
        <field name="Using" type="BaseClassStatObjectFieldDefinition" value="ST_SkillbookBloodCloud" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
      </fields>
    </stat_object>
    <stat_object index="27" color="#FF483D8B" is_substat="true">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="New_Stat_13" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Necromancy_ConsumeCorpse" />
        <field name="Using" type="BaseClassStatObjectFieldDefinition" value="ST_SkillbookBloodCloud" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
      </fields>
    </stat_object>
    <stat_object index="28" color="#FF483D8B" is_substat="true">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="New_Stat_14" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Necromancy_CorruptMind" />
        <field name="Using" type="BaseClassStatObjectFieldDefinition" value="ST_SkillbookBloodCloud" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
      </fields>
    </stat_object>
    <stat_object index="29" color="#FF483D8B" is_substat="true">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="New_Stat_15" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Necromancy_FleshSacrifice" />
        <field name="Using" type="BaseClassStatObjectFieldDefinition" value="ST_SkillbookBloodCloud" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
      </fields>
    </stat_object>
    <stat_object index="30" color="#00FFFFFF" is_substat="false">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="ST_SkillbookPolymorphNew" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Polymorph_RubberSkin" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
      </fields>
    </stat_object>
    <stat_object index="31" color="#FFB22222" is_substat="false">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="ST_SkillbookWarriorNew" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Warrior_Javelin" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
      </fields>
    </stat_object>
    <stat_object index="32" color="#FFB22222" is_substat="true">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="ST_SkillbookWarriorNew_substat" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Warrior_ShieldBash" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
        <field name="Using" type="BaseClassStatObjectFieldDefinition" value="ST_SkillbookWarriorNew" />
      </fields>
    </stat_object>
    <stat_object index="33" is_substat="false">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="ST_SkillbookRogueNew" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Rogue_CloakedSneak" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
      </fields>
    </stat_object>
    <stat_object index="34" is_substat="true">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="ST_SkillbookRogueNew_substat" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Rogue_CurseWeaponNew" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
        <field name="Using" type="BaseClassStatObjectFieldDefinition" value="ST_SkillbookRogueNew" />
      </fields>
    </stat_object>
    <stat_object index="35" is_substat="true">
      <fields>
        <field name="Name" type="NameStatObjectFieldDefinition" value="New_Stat_18" />
        <field name="DropCount" type="StringStatObjectFieldDefinition" value="1,2" />
        <field name="ObjectCategory" type="StringStatObjectFieldDefinition" value="I_SKILLBOOK_Rogue_DecoyNew" />
        <field name="Frequency" type="IntegerStatObjectFieldDefinition" value="100" />
        <field name="Using" type="BaseClassStatObjectFieldDefinition" value="ST_SkillbookRogueNew" />
      </fields>
    </stat_object>
  </stat_objects>
</stats>


Thinking perhaps treasuretables are not being updated when changes to stats file occurs?

Update 2: Published locally with version update change and seems to be working, published to workshop and now waiting for mod users to report back to me that it's not happened again.