I still don't see the need to emulate reset (or your buggy code, or why one program does two completely different things), but I understand this has been a looooooooong battle for you. I suggest you read up on some code-refactoring techniques. Some of it is rather obvious, but it may help you try to understand what we are saying and why your antiquated ways need to change. Also read up on error handling, design driven development, and so on. And debugging! If you want to watch values, use a debugger or instrument debugging hooks.
To be constructive, I'll give some feedback. I like to chain GNU tools together, and parse things (running items through sort and grep and such), so I'd do something like the following to keep parsing simple. Shiny output is of little use to machines.
iteration variable value
1 abcdef foo
1 bbcdef bar
2 sheep zebra
or is there hope for my module?
I see little hope. Especially in that you still have a few subroutines and don't even have a module yet.