<<= macht ja nix als PORTB = (1<<PORTB) oder?
Oder! Es macht PORTB = PORTB << 1;

PortX macht nichts anderes als Pinx - nur auf den ganzen port bezogen oder?
Oder! Beides bezieht sich auf den ganzen Port, aber PORTx ist für den Output, während PINx für den Input ist.

Aber eigentlich ist PORTB=1 die Anweisung die Internen PullUps auf 1 zu setzen ^^
Nein. PORTx ist für die Pullups nur für die Pins relevant, die als Eingang geschaltet sind. Ist der Pin als Ausgang geschaltet, steht in PORTx einfach das, was ausgegeben werden soll.

hab meinen code jetzt soweit modifiziert
Der Code für Vorwärts und Rückwärts ist ja identisch. Die Richtung ändert sich nicht nur durch Willenskraft.
Andere Richtung:
PORTB >>= 1;
if (!PORTB) PORTB = 128;