bitClear doesn't work on most significant bit
uint32_t data = 0xFFFFFFFF;
Serial.println(data, BIN);
data = 0xFFFFFFFF;
bitClear(data, 30);
Serial.println(data, BIN);
data = 0xFFFFFFFF;
bitClear(data, 31);
Serial.println(data, BIN);


On my mega outputs:

11111111111111111111111111111111
10111111111111111111111111111111
1111111111111111111111111111111


Are you sure you aren't mistaking the fact that println doesn't print leading 0's for the number being nothing but 1's? Try printing as hex, then all the numbers will be the same width: 

FFFFFFFF
BFFFFFFF
7FFFFFFF