So Problem ist einfach verschwunden, fragt bitte nicht warum.
Das Programm wurde überholt, aber die PWM ruckelt komigerweise,
und wenn ich aus der PWM das program mwechsel bleiben die RGBs stehen.

Code:
$regfile = "m16def.dat"
$framesize = 32
$swstack = 32
$hwstack = 40
$crystal = 16000000
$baud = 9600

Waitms 50                                                   'Einschwingzeit

'//////////Ports Konfigurieren\\\\\\\\\\
Config Porta = Output                                       'M1
Config Portc = Output                                       'M2
Config Portd.6 = Output                                     'RGB-Rot
Config Portd.3 = Input                                      'TSOP

Porta.4 = 1                                                 'Enable1 active = low
Portc.4 = 1
Enable1 Alias Porta.4
Enable2 Alias Portc.4

Portd.6 = 1                                                 'RGB Led ausschalten
Portc.7 = 1
Portc.6 = 1

'//////////Timer konfigurieren, Vorteiler auf 1\\\\\\\\\\
Config Timer0 = Timer , Prescale = 1

'//////////RC5 konfigurieren mit Timer 2\\\\\\\\\\
Config Rc5 = Pind.3 , Timer = 2

'/////////Sub Deklarieren\\\\\\\\\\\\\
Declare Sub Wait_and_get(byval Ms As Byte)


'//////////Definiere den Interrupthandler\\\\\\\\\\
On Ovf0 Tim0_isr
Enable Interrupts

Enable Timer0                                               'Timer einschalten


Dim R1 As Byte                                              ' In diese Variablen muss man
Dim G1 As Byte                                              ' im Hauptprogram die gewnschten
Dim B1 As Byte                                              ' Ausgabewerte laden

Dim Z As Word                                               'Zļæ½ler

Dim Ri1 As Byte                                             'Hilfsregister
Dim Gi1 As Byte
Dim Bi1 As Byte

'//////////Variablen fr Hauptprogramm\\\\\\\\\\
Dim A As Byte                                               'Schleifenvariable RGBs

Z = 0

G1 = 0
R1 = 0
B1 = 0

Dim I As Byte                                               'Schleifenvariable Lauflicht
Dim I2 As Byte                                              'Schleifenvariable Lauflicht
Dim I3 As Byte                                              'Schleifenvariable Lauflicht
Dim Ir_address As Byte
Dim Ir_command As Byte

Wait 1

'//////////Einstellungen\\\\\\\\\\
Const Freilauf = 20                                               'Lauflicht Freilaufzeit
'Normaldurchlauf = 2                                         'Anzahl der Standarddurchlļæ½fe
'//////////Hauptprogramm <Start>\\\\\\\\\\
Waitms 200
Print "Starte Hauptprogramm"

Standby:
Do

Call Wait_and_get(5)                                        'Dļæ½mchen drehen und auf Befehl warten

Loop

'//////////Hauptprogramm <Ende>\\\\\\\\\\

'Programm1: RGB LEDs
Programm1:
Do

'Rot
For A = 0 To 254
Incr R1
Call Wait_and_get(0)
Next
Call Wait_and_get(10)
For A = 0 To 254
Decr R1
Call Wait_and_get(0)
Next

'Grn
For A = 0 To 254
Incr G1
Call Wait_and_get(0)
Next
Call Wait_and_get(10)
For A = 0 To 254
Decr G1
Call Wait_and_get(0)
Next

'Blau
For A = 0 To 254
Incr B1
Call Wait_and_get(0)
Next
Call Wait_and_get(10)
For A = 0 To 254
Decr B1
Call Wait_and_get(0)
Next

'Blau/Grn
For A = 0 To 254
Incr B1
Incr G1
Call Wait_and_get(0)
Next
Call Wait_and_get(10)
For A = 0 To 254
Decr B1
Decr G1
Call Wait_and_get(0)
Next

'Blau/Rot
For A = 0 To 254
Incr B1
Incr R1
Call Wait_and_get(0)
Next
Call Wait_and_get(10)
For A = 0 To 254
Decr B1
Decr R1
Call Wait_and_get(0)
Next

'Grn/Rot
For A = 0 To 254
Incr G1
Incr R1
Call Wait_and_get(0)
Next
Call Wait_and_get(10)
For A = 0 To 254
Decr G1
Decr R1
Call Wait_and_get(0)
Next

'Grn/Rot/Blau
For A = 0 To 254
Incr G1
Incr R1
Incr B1
Call Wait_and_get(0)
Next
Call Wait_and_get(10)
For A = 0 To 254
Decr G1
Decr R1
Decr B1
Call Wait_and_get(0)
Next
Loop
'ende des 1. programms

'Programm2: Lauflicht
Programm2:
Do

 For I = 0 To 15
  Porta = I
  Enable1 = 0
  Call Wait_and_get(Freilauf)
  Enable1 = 1
 Next I

 For I = 0 To 11
  Portc = I
  Enable2 = 0
  Call Wait_and_get(Freilauf)
  Enable2 = 1
 Next I
Call Wait_and_get(0)
Loop
'ende des 2. programms


'Programm3: Lauflicht2
Programm3:
Do

 For I = 0 To 15
  Porta = I
  Enable1 = 0
  Waitms 10
  Enable1 = 1
 Next I

 For I = 0 To 11
  Portc = I
  Enable2 = 0
  Waitms 10
  Enable2 = 1
 Next I
Call Wait_and_get(0)
Loop
'ende lauflicht 2

Programmr:
R1 = 255
Goto Standby

'/////////////////Funktion zum RC5 empfangen und warten\\\\\\\\\\\\\\\
'Sub zum empfangen und warten
Sub Wait_and_get(byval Ms As Integer)
Getrc5(ir_address , Ir_command)                             'Empfangen

'Wenn was empfangen dann reagieren
If Ir_address = 0 Then
Ir_command = Ir_command And &B01111111 'entfernt das togglebit

  If Ir_command = 17 Then Goto Programm1
  If Ir_command = 18 Then Goto Programm2
  If Ir_command = 19 Then Goto Programm3
  If Ir_command = 20 Then Goto Programmr
' If Ir_command = irgendwas Then Goto Standby
End If

Waitms Ms                                                   'warten
End Sub


'//////////Interupthandler Timer0 <Start>\\\\\\\\\\
Tim0_isr:

    If Z = 0 Then                                           'Gewnschte Ausgabewerte an
    Ri1 = R1                                                'Hilfsregister bergeben
    Gi1 = G1
    Bi1 = B1
    Z = 255
    End If

    Z = Z - 1

    'PWM Kanļæ½e

    'RGB LEDs
    If Ri1 > 0 Then
    Portd.6 = 0
    Else
    Portd.6 = 1
    End If
    Decr Ri1
    If Ri1 = 255 Then Ri1 = 0

    If Gi1 > 0 Then
    Portc.7 = 0
    Else
    Portc.7 = 1
    End If
    Decr Gi1
    If Gi1 = 255 Then Gi1 = 0

    If Bi1 > 0 Then
    Portc.6 = 0
    Else
    Portc.6 = 1
    End If
    Decr Bi1
    If Bi1 = 255 Then Bi1 = 0

    Return
'//////////Interupthandler Timer0 <Ende>\\\\\\\\\\
Langsam überleg ich schon es einfach in die Tonne zu werfen, aber ist ist ja so gut wie fertig.

Hier mal der Schaltplan, kann es sein das es an den transen liegt?
War schonmal einer kaputt.
http://dastefan.da.funpic.de/Srv/sch.JPG