Il punto è che stai cercando di fare svariate "forzature" che in genere non servono. Innanzitutto stai forzando il preferred size di tutti i pannelli. Sarebbe meglio ragionare in termini di contenuti, cioè di cosa dovranno contenere.
Riguardo questo famigerato pannello centroSud, ci sono diverse questioni:
- stai forzando il preferred size del pannello, quindi anche se ci mettessi 2000 label, non ottieni quello che vuoi.
- hai messo il JScrollPane in un BorderLayout.SOUTH. In SOUTH viene rispettato solo il preferred height e quale è? È quello che viene chiesto al JScrollPane, il quale lo chiede al pannello aggiungendoci poi qualcosa del scroll pane (es. lo spazio per la/e barra/e). In sostanza il BorderLayout tenta di dimensionare il JScrollPane per far stare tutto il pannello! Ecco perché non scrolla. Sarebbe più sensato dare un preferred size al JScrollPane piuttosto che al pannello.