Hi. In essence, you want something like this:
#set page(width: 5cm, height: 2cm, footer-descent: 0pt, margin: 3mm)
#set pagebreak(weak: true)
#set page(numbering: "I")
= I First section
#pagebreak()
#let saved-page = state("saved-page")
#context saved-page.update(counter(page).get())
#set page(numbering: "1")
#counter(page).update(1)
= 1 Main section
#pagebreak()
= 2 Main section
#pagebreak()
#set page(numbering: "I")
#context counter(page).update(saved-page.get())
= II Last section
#pagebreak()
= III Last section
You can create a bunch of wrappers, but if it’s in the main file that doesn’t have anything, then I think it’s fine to leave it as is, because it explains itself pretty well. You can add intention comments.