I never had problems setting the config parameters in the programmer, but I will try that anyway...
I have a feeling that the problem is in the line:
Code:
  if PORTB.0 = 1 then   '<---- this line?
    Serout2 PORTB.7, 16384+12, [144, 44, 127]    ' Rewind
  endif
The strange thing is that the switch status IS correctly read in this part:
Code:
Debounce:
  Pause 20                                          ' ? shorter ?
  If (PORTB.0=1) or (PORTB.1=1) or (PORTB.2=1) or (PORTB.3=1) or (PORTB.4=1) then
    PORTB.6 = 1                                   ' ADDED TO CHECK!! 
    goto Debounce                                ' Button still pressed?
  else
    PORTB.6 = 0                                   ' ADDED TO CHECK!!
  endif  
  Goto Progstart
So PORTB.6 is high as long as a button is pressed.

And a loop Serout xxx/ Pause 1000 spits out a burst of MIDI data every second, so it doesn't look it is a config problem.