It doesn't compile, you have too many braces, and I don't get this bit:
void runAnimation() {
//Start the fogger
Serial.println("fire the fogger");
registerWrite(bitToSet, HIGH); // This fails here - the serial shows that the bits are right, but nothing happens
bitToSet is not in scope at that point.
The Serial output shows the correct bits are set, but I cannot figure out why the digitalWrite or shiftOut fails.
Better post code that compiles if the complaint is about runtime behaviour.