Well, excuse me for stating the (almost) obvious, but I'll say it anyway: it appears to me like you want to implement some form of a state machine. Each form is a state, with its associated data. Depending on what the user does, you move to another state.
I would think that a general implementation of such a state machine, complete with HTML for the forms, could be implemented on top of a database for storage. The tricky part for such an approach, would be in the transitions, e.g. data validation: that must be pure (Perl) code, and I wouldn't go as far as to store that source code in a database. Hardly.