How about this:
Separate dye modules into ‘modules’ and ‘packs’. A module would be an empty mod that you insert one or two packs into (with one primary slot and one secondary slot), with the packs being a single dye color (either restricted to being a primary or a secondary, or else usable as either slot when inserted into a module). You would insert the packs of your choice into a module, and then apply that module to a piece of armor. Applying the module would color the armor the same as it does now.
You could insert or remove packs into/from a module all day long (this would allow previewing how it would look on the armor you’re intending to use it on), but once the module’s applied to a piece of armor, that’s it, single use. Module and both packs currently in it when you apply it to armor are destroyed if you remove/replace them. Alternately, changing the dye packs in a module would destroy the pack in the slot you’re replacing.