Prova a fare un po' di sano e assurdo debugging...
Controlla se l'oggetto è presente nel panel prima di rimuoverlo e stampa il risultato con System.out.println()
Controlla se l'oggetto è presente nel panel dopo averlo rimosso e, come sopra, dacci dentro di println()
Di solito se anche manca il validate o quello che è, la finestra viene ridisegnata correttamente se la ridimensioni col mouse mentre l'applicazione è in esecuzione.
Fai anche questo test e dicci il risultato.
Poi, una considerazione. se effettui una rimozione, ci deve essere un evento scatenante (una pressione su un bottone ad esempio). Sarebbe forse meglio usare un ActionListener per effettuare la rimozione dell'oggetto dal pannello, sia per logica, sia perchè l'ActionListener (se non ricordo male) si arrangia a ridisegnare l'interfaccia.
Ciao!