I recommend to create 8 versions so you don't have to take care of the M-> M+/- and F -> F+/- forwarding.
What about using the "token based answer persistence" (see survey settings) and having a hidden question at the beginning which is populated by URL? Part I and II depend on the value of the hidden question. At first start, the hidden question is empty and thereofre only the first question set is shown. The user then submits the first part of the survey.
You then send a reminder to fuill out the second part. At the reminder URL, pass an additional parameter like ...?12345X22X333=part2 so the question gets populated. Then the conditions will take care of the rest and only the second part of the survey is shown because of a condition like "IF Q x = 'part2' show questions 20-40".
You then have all data in one data set.
I hope you can understand what I try to describe