Ken -
I spent weeks with one client trying to incorporate a similar system into his existing solution, which was based on a single workbook that contained all the code. His program used Solver, which is among the least friendly add-ins to interact with. The references crashed half the time. We ended up using Application.Run to interact with Solver.
If I could have talked him into separating the data part from the program part, and distribute an add-in and a template, we could have made solver work much better. A two-part system is much more flexible, and much easier to update. How do you update just the code in a workbook that has code, data, and formatting all integrally merged? It's next to impossible. In a multi-part system, you change one part, and the other parts remain intact.
In fact, a three part system is even better: program, data, and presentation. The whole XML thing is about keeping the data separate from the presentation.