1. Der Zugriff ist nicht-atomar. Wenn einer der Ports auch per ISR verändert wird, kann das Probleme machen
  2. Während des Setzens können je nach Device ungültige Kommandos entstehen? Vorher änderten sich ja alle Pins mit einem Schlag, was jetzt nicht mehr der Fall ist. Das Problem wird vielleicht abgemildert durch

    Code:
    PORT = (PORT & 0b11)  | (command & ~0b11);
    weil dann im Gegensatz zu Deiner Lösung nur 1x gelesen und 1x geschrieben wird (bei Dir 2x).
  3. DDR ist gesetzt?