When you use the setDataVector() method the structure of the table may change so the table automatically recreates the TableColumnModel and you lose your customization.
When you create the JTable the first time use code like:
JTable table = new JTable(...);
table.setAutoCreateColumnsFromModel( false );
to prevent the TableColumnModel from being recreated.