Se il content pane di JFrame ha il BorderLayout predefinito, entrambi i pannelli andrebbero per default in CENTER ed è ovviamente scorretto perché appunto solo 1 componente va in ciascuna delle 5 aree di BorderLayout (nel tuo caso il secondo aggiunto va in CENTER).
Dovresti precisare che cosa vuoi realizzare in generale, quali sono gli obiettivi della tua interfaccia utente.
Se vuoi mostrare sempre e solo uno tra N componenti, c'è CardLayout (layout manager). Esiste anche JTabbedPane (componente) per questo, ma ha le "linguette" per far cambiare tab direttamente all'utente e presumo/immagino non sia quello che vuoi.
Se invece vuoi realmente gestire in modo flessibile più componenti su "strati" differenti, esiste JLayeredPane (componente) che è fatto apposta per tenere componenti su strati differenti.
Tieni comunque presente che il concetto di z-order è sempre stato abbastanza critico in AWT/Swing, specialmente fino a prima di Java 5. Perché lo z-order dipendeva (ed è ancora così di base) dall'ordine degli add nel contenitore. Poi da Java 5 sono stati effettivamente aggiunti dei metodi in Container per lo z-order ma è molto raro doverli usare (e va letta bene la documentazione).