Hm, yeah... Index codes may complicate things. I don't deal in those at all, so I really can't comment on what can go wrong with them.
Since you mentioned BK though, that's an important note to make. Some items may have restrictions, such as level, theme, and so on. Some might even be set to not spawn, like BK does, so you'd need to be careful about how the treasure tables are calling them (and which enemies are using them).
My suggestion would be to start easier, using just treasures and monsters. Eg, assuming data is the same, you can locate the "pit_barron_dyekits" treasure; this is Moloch's roll for dyes. Here, you can copy-paste this row, tweak it (say, adjusting "nodrop" for drop rates or removing non-BK dyes), rename it (eg "pit_barron_dyekits_edit"), and then assign this new treasure to a unique enemy of your choice.
OR, you could directly add this new treasure row to an existing one (like defaultmonsterloot).
If you look at Moloch's treasure, the "parent" row is "pit_baron_treasure" which then flows into multiple sub-rows. This is phrased as "tc:name". So you could add a new subrow to defaultmonsterloot, phrased as "tc:pit_barron_dyekits_edit".
In both cases, just make sure to also add a number value in the column next to your new entry. If you add content to an empty field, its adjacent column (in my case "Value1", etc) would normally be empty - meaning the game has no number to roll your row for (either in amount of rolls or outcome chances).