Hilfe beim Speichern und Abrufen von PWM Werten gesucht

Für das das Pluszeichen habe ich bisher keine direkte Erklärung gefunden. Ich denke, es gehört zur syntax und sagt hier: Ordne dem gespeicherten Wert von outvalue dem entsprechenden Potibereich zu. Richtig?

Nein. pgm_read_byte() liest ein Byte aus dem Flashspeicher (der vorher per PROGMEM markiert werden musste). Der einzige Parameter dabei ist die Adresse. outvalue1 ist die Basisadresse des gespeicherten Arrays. Den Wert am entsprechenden Index erhalte ich, indem ich den gewünschten Index zur Basisadresse addiere. Der Ausdruck

pgm_read_byte(outvalue1+range)

entspricht also einem

outvalue1[range]

wenn PROGMEM nicht verwendet worden wäre.

  Serial.print("B ");                                                       // "B x", zeigt aktuellen Potibereich an

In meinem Code war die nachfolgende Zeile wichtig, das Serial.println(range) ist also notwendig, sonst siehst Du nicht das, was Du erwartest.

  tasterStatusRec = digitalRead(tasterRec);     
  if(tasterStatusRec == HIGH)

Der Code im if wird durchgehend ausgeführt, solange der Taster gedrückt ist. Solltest Du damit also Werte z.B. im EEPROM speichern wollen, so machst Du das sehr häufig und Dein EEPROM ist relativ schnell verschlissen. Du musst also noch zusätzlichen Code einbauen, der feststellt, wann der Wechsel von LOW nach HIGH passiert und nur dann reagiert. Genau genommen solltest Du den Taster noch entprellen, also auf den Wechsel nur reagieren, wenn der letzte Wechsel nicht eine gewisse Zeit zurückliegt.

// Ich kann doch die PWM Werte hier nicht nochmal speichern, sie sind doch schon im Flash...?

Du musst ja auch nicht die Ausgabewerte speichern, sondern den Wert der "range"-Variable. Die bestimmt, welcher Wert ausgegeben wird.