You probably want to read this post,
It sounds possible to configure compilation to output parts of a document as long as they are probably indicated. Something like
#let part = int(sys.inputs.at("part", default: "0"))
// header
#if part == 0 or part == 1 {
// part 1
}
#if part == 0 or part == 2 {
// part 2
}
Then you would compile with
typst c test.typ --input=part=1
for part 1 for example