I noticed that the enableHPF() wasn't working, and after playing with it I realized that it was setting the wrong bit (<<5 flips the wrong bit). It should be:
if (enable) { data |= 1 << 4; } else { data &= ~(1 << 4); }
to set the FDS bit in CTRL_REG2