Haven't done this myself, but this is what comes to my mind:
When printing you need a few masks:
First create a shadow mask to block the shadow values in the negative (you figured that out already). Make a contact print onto lithfilm, adjust exposure and development such that from no density until a certain densitity in the original negative you get a high density in the mask. Contact print this again to get a film that blocks mid- and highvalues. Keep both masks!
Contactprint the negative again and extend the density range (by exposure and development) that must be blocked so that it effectively is blocking shadow AND midvalues. Invert this film to get a piece of film that only blocks highlights.
You have now four masks: Block shadows A, blocking mid and high B, blocking shadow and mid values C and blocking Highlights D
You could print the negative as follows:
Take mask B and print the shadows.
Take Mask A and D and print for midvalues
Take mask C and print the highlights.
I foresee some problem area's: not all masks are emulsion matched, I mean to say they cannot be matched emulsion to emulsion and some unsharp masking effect can be experience, especially when you are printing the midvalues (stacking two masks onto the negative). This can be overcome by just contactprinting A and D (without the orignal negative) and inverting this giving a mask that blocks highlights and shadows and use this mask instead of A and D.
If the crossover from mask A to B and C to D is not perfect you'll experience adjacent effects. Theorectically a steep slope will be less troublesome than a mask with a pronounced slope. A steep filter slope however will show itself when you adjust contrast too extreme with the range you are printing like having a higher density for the maximum value in the shadow part than the lowest densitity in the midvalues ranges. When the mask has a slope, it must be matched with the slope of the other masks to prevent that negative densities in the crossover area are not malformed while printing.
You'll also need to figure out correct exposure of the first masks A and C to block the density range you want. Inverting A and C is relative simple.