How much do you know about how the Moodle quiz/question system works? https://docs.moodle.org/dev/Overview_of_the_Moodle_question_engine#Database_tables & https://docs.moodle.org/dev/Quiz_database_structure
What might make it possible to do what you want is that, once an attempt has been started, the link from the quiz attempt to the question is
quiz_attempts.uniqueid -> question_attempts.questionusageid ; question_attempts.questionid -> question.id
and it no longer matters how the quiz is set up.
And, because of random questions, all the quiz reports cope just find if you have different questionids in the same slot.
So, just don't change the old quiz attempts at all, but make sure any new quiz_attempts started in future use the new questions you want used.
Would that work?