Is it correct to subtract a low-pass filtered signal from the original signal and use the result as a "high-pass"?
In theory you can do this, but in practice it is difficult to do because the time and phase alignment must be pretty good for it to work.  If the alignment is good you will get the destructive interference that you are seeking.  If they aren't, you will get some constructive interference.  Even worse, whether they are destructively or constructively interfering will depend on the frequency- i.e. you can get both constructive and destructive interference at the same time.  It can work, though, if you are only filtering out fairly low frequencies, since their timing requirements are the loosest because they change so slowly.

Short story- it's possible to do but is difficult enough that it generally makes sense to just do a high-pass filter.

A relatively straightforward way to create a bandpass filter is to create a low-pass filter, and then modulate it to the center frequency you want by multiplying it with a sinusoid of that frequency.