I have had quite a good bit of success with BBr3 for doing this. It took me a lot of tries to get it right though.
First, what solvent are you using? It has to be VERY dry and you have to perform the reaction under inert environment. Ultimately what worked best for me was dichloromethane as s solvent. Even though it is not miscible with water, regular dichloromethane is not even close to dry enough.Water is going to kill your reaction. I would quench my reactions by dumping into water.
The other advantage of using dichloromethane as the solvent is, boron tribromide is cheaper, easier, and safer to work with if you buy it already in a solution of dichloromethane.
Now, my substrate was NOT soluble in dichloromethane, but that did not matter. Just give it enough time and it goes.
I unfortunately do not have the paper with me, but many years back there was a very detailed study on BBr3, and at minimum it seems you want at least a 4:1 ratio of excess BBr3. It has been ~3 years since I did anything with it, so I do not remember why. You might want to see if you can find that paper. It is OLD, I had to copy it from a library and never scanned it. If I remember correctly, if there are other OH groups, you need to add an equivalent for that as well even though it does not modify it in the end? But, I am really not sure on the details? I would say for 100% sure you are not using nowhere near enough.
And they also found that it decomposes or is inactivated at R.T. more readily, or something. So cold is the way to go. I have never seen anybody do it at R.T.
My reactions were performed in a dry ice/acetone bath, under inert atmosphere, over night, with ultimately ~6 equivalent BBr3, with CH2Cl2 as solvent. The next day I would slowly warm to room temperature, and slowly poor reaction into water. Then do my workup.
I also experimented with HBr with not much luck, to many other side products. I did some experimenting with HI (similar to HBr), and for my substrates I had much better success, but nowhere near as good as success as once I got the BBr3 method working; just because BBr3 was so much more specific and I got much purer products.