I think this will do it, or at least get the conversation started.
Here’s what to do:
Open or create "My Paratext Projects\YOURPROJECT\custom.sty"
Add
\Marker v
\TextProperties verse nonpublishable
Open or create "My Paratext Projects\YOURPROJECT\PrintDraftChanges.txt"
Add
"\\v\ ((\d*)(.*?)(\d*)?)\ " > "\\v \2-\4 \\vp \1 \\vp* "
"-\ " > " "
Why it (hopefully) works:
As you send your text to draft, you’re changing verse numbers so that \v marks what PT expects to see, i.e. hyphens in ranges. You’re also adding \vp which says which text should actually be printed. In your PrintDraft, the header references are read from \v and hence will display correctly.
I’m not very good at using Regular Expressions, so I’m not confident mine will work perfectly but I know I have the general idea down. The second line "-\ " > " " is necessary because I couldn’t find a way to not create a hyphen when the verse only had a single reference in it, so I just created it and then deleted it when necessary.
Sidenote: In my opinion the edits to custom.sty should be unnecessary, as should my forcing every verse to have both \v and \vp markers. This is because ptx2pdf, the TeX macros behind PrintDraft, fail to follow what I think should be a simple rule: If \vp exists then print \vp and not \v. Else print \v.
[Edited to fix Regular Expression]