Thanks for the suggestions; I'll probably get onto that next week as the boxes of cranksets are beginning to overflow, again. A lot of the extra information has been useful as well, not least that I'm not alone in having to resort to trial and error to figure which crankset works with which part.
Still, we're already a long way ahead of when I started, and had to explain that saving cranksets is a great thing, but you really need to make sure the crank arms are stored with them or there really isn't much point...
Your OP and your subsequent comments allows an ontological approach to this for your maximum benefit: establish the most important discriminating criterion.
The most important category (for your purpose, imho) is whether the chainset is
square taper (ST) or 'other' because most of the bikes will already have BBs fitted.
Then, for all the ST chainsets, the chainline which each chainset will achieve on a set length of BB spindle can be determined, as
@presta noted, by torquing each chainset (RHS) on a benchmark BB (I suggest 127.5mm).
Categorise them by the derived chainline dimension.
Although it'd be good to wire the LH crank to the rest of it, matching doesn't really matter, except aesthetically, so all the 'spare' LH cranks can merely be arranged by crank length. Once you've got a crankset (per chainline) chosen, if it's without its matching LH crank, all you need is one the same length.
HTH