how can I unlock a bitlocker encrypted volume using linux

Not sure if this will solve your issue, but: there are multiple copies of the Bitlocker metdata spread across the volume (one at the start, the others – usually two more – spaced roughly evenly). You can use a hex editor to view these regions, and in particular to tell where the other two are. The headers of dislocker describe the data format, although imperfectly (some unknown fields).

You can then try editing the fields (after making backups!!!) if any of the values look out of line, or especially if there’s differences between the locations. Using dd might be the easiest way to overwrite one section with the content of another, though be aware that its syntax and usage is a bit archaic (and back up the overwritten sections!!).

You can also run dislocker under a debugger, which will allow you to examine exactly where the error occurs. It’s been a few years since I looked at the dislocker source but it was pretty readable back then, so it shouldn’t be too hard to follow. Bear in mind that this probably won’t solve the issue directly, just tell you where the problem is so you don’t have to do it by looking at a hex dump and manually cross-referencing the data structures. It’s possible you could tell dislocker to ignore a corrupted metadata section or similar, though, without needing to hand-edit anything.