Page 5 of the hydra manual contains the fix for your exact problem :).
// do #show heading: it => block(v(8cm) + it // don't #show heading: it => v(8cm) + it
You have to wrap the vertical spacing and the heading in a block.
...
pagebreak(weak: true, to: "odd")
block(v(5em) + it)
...