Having similar issue with an E46 320Cd, though it only happens me at slower speeds, usually taking off and turning. I searched about and guessing it's the same as you have concluded; the Reluctor Ring that the speed sensors uses to assess rotation speed of each wheel. I haven't inspected to see its condition or if a spacer is in place or not.
Replacing the half shafts seems a much easier approach given replacing the Reluctor Ring isn't guaranteed to work if heavily corroded, and they are only a few quid extra.