Hi - and sorry for not seeing this before - maybe related to the email notification issues that are now fixed.
If your images are calibrated (many SCANCO ones are, usually in units of attenuation: cm-1) then you can come up with a single reasonable threshold value that you can then apply to all the images in your series. To avoid annoying GUI interactions like the slice-by-slice variation you describe, do it programmatically in a macro, e.g.:
lower = <your calibrated lower threshold>;
upper = <your calibrated upper threshold>;
run("Convert to Mask");
This way all your images will be thresholded at approximately the same physical X-ray attenuation value. Bear in mind though that HR-qCT images despite their name are not particularly high resolution compared to X-ray microtomography (~80-150 µm vs ~1-10 µm respectively). Human trabeculae are usually something like 100-300 µm, maxing out at 500 µm diameter, so you are likely to have a very large component of partial volume artefact - many (or most) of the pixels in your images are only partially bone, so are vulnerable to being misclassified by your thresholding scheme. It is well worthwhile doing an analysis of how your outcome variable (BV/TV) varies according to the threshold value you choose.
If your VOI is irregularly shaped, then please use the ROI Manager option in BoneJ's Volume Fraction plugin, which will limit the measurements to pixels within the ROIs you set. Otherwise you might be measuring lots of pixels outside the bone that you'd rather ignore.