Boy!
Did I try and complicate this
Late last night I remembered I'd already set up a reminder mechanism on something else I'd created.
This is what I did.
Within my site each form has it's own library - happy days.
Then I create a custom list i.e. Reminder Dates.
Within this custom list I added extra columns that I'd need.:
FormType; Form Status, Submitted Date, - these are all populated with data from my form. This is done via the workflow which runs against the form. The Form Type column is just a reference that I made up to indicate to me which library this form has come from. This means this list can be used for all libraries in the site.
ReminderDate1, ReminderDate2, ReminderDate3 etc. These are calculated columns which add on dates to the Submitted Date
On my main form workflow
I had the workflow create an entry into the ReminderDate list based on the name of the form - this becomes my unique identify and joins the form and the reminderdate list.
Once that item has been created the form workflow updates the reminder list with values from the form based on the unique identifier.
Then I created a workflow on the Reminder Date list.
The first thing I do is make sure that the form status is at the correct stage otherwise stop.
Then the next step confirms the form type and form status.
Then it's just a matter of confirming your dates, pause until X date is reached, if the form status has changed - stop, if not send email, then pause until the next reminder date. When you hit the next reminder date, check the form status first, stop or send email etc,