You need to reset the values
if (selectedColumn == column){
bg = new Color(107, 142, 35);
setFont(getFont().deriveFont(Font.BOLD));// !!!!trying to do it here!!!!
} else {
setFont(UIManager.getFont("TableHeader.font"));
}
Renders are a shared resource, so all the headers share the same render. This means if you change the state of the renderer from one pass to another, the next element rendered with the rendering will gain all the properties you used previously...