Coming from a manufacturing background, I find your problem interesting. This seems to be much like an MES or ERP module for factory routing. There are two basic lists I would provide to achieve the functionality I understand you describing:

List of rout elements:
This would look like:
WSIDWork_Station_Name
1(unique int)buildFrame
2(unique int)addSeats
3.. ...

List of existing routs:
would look like:
RIDRout_nameWSID_1WSID_2...
1Model_142...
2Model_273
3Model_374...

What your storage solution is does not really matter. Could be text files, XML, RDBMS, JSON, .ini....whatever...

The key is to be able to easily add "workstations", and easily add routs(ordered collections of workstations)

The workstation list is just a lookup to fill in the rout. Both the existing routs and workstation list would only be added to. (thus you never loose the history of a rout).

Really all you need is an array to hole the workstations and a hash of arrays to hold the routs. With those two structures, you can do pretty much anything you need to do for a simplistic system. Both lists could be stored in a single file if that makes it easier, or in a spreadsheet assuming you use something like Spreadsheet::WriteExcel.

I would use an RDBMS for my storage personally, but again, it hardly matters. In my experience, the priorities are in order:

  1. flexibility(mfg always changes)
  2. Maintainability (KISS)
  3. Resources(skillsets)
  4. historization(traceability)

Hope there is something useful to you in there...