First attempt at looping through (not full) matrix led strip...

I think the }s in void loop were a litte off, so the count up code was not separated from the count down code. Try it like this.

void loop() {   
  //clear display
  //for(int group=0; group<totalGroups; group++){    
  //digitalWrite (SS,LOW);
  //SPI.transfer (registerAddress[group]);  // register to write to
  //SPI.transfer (B00000000);  // and value       
  //digitalWrite (SS,HIGH);
  //}

  //count up
  for(int group=0; group<totalGroups; group++){
    for(int led=0; led<8; led++){
      digitalWrite (SS,LOW);
      SPI.transfer (registerAddress[group]);  // register to write to
      SPI.transfer (ledIn[led]);  // and value       
      digitalWrite (SS,HIGH);
      delay(pause);
      if ( (group == 7) && (led == 3) ){ led = 8;}

    }
  }
        for(int group2=7; group2>=0; group2--){
          Serial.print("GROUP 2: ");
          Serial.println(group2);
          if(group2 >= 7){
            Serial.println(" -LAST GROUP- ");
            for (int led=3; led>=0; led--){
              digitalWrite (SS,LOW);
              SPI.transfer (registerAddress[group2]);  // register to write to
              SPI.transfer (ledOut[led]);  // and value       
              digitalWrite (SS,HIGH);

              delay(pause); 
              ledCounter--;         
            }
          }
          else{  
            Serial.print(" -NOT LAST GROUP- "); 
            Serial.println(group2);       
            for (int led=7; led>=0; led--){
              digitalWrite (SS,LOW);
              SPI.transfer (registerAddress[group2]);  // register to write to
              SPI.transfer (ledOut[led]);  // and value       
              digitalWrite (SS,HIGH);

              delay(pause);
              ledCounter--;
            }
          }
        }
      }