Whatever your problem is exactly (hard to tell from your description), you are doing the sorting incorrectly: in Swing JTable the sorting is considered the responsibility of the view (vs. the model as in your implementation).
Custom comparators (per column) are configured in the rowSorter, something like:
table.setAutoCreateRowSorter(true);
((TableRowSorter) table.getRowSorter()).setComparator(columnIndex, myComparator);
BTW: the location of the sort icon is controlled by the LAF, not much you can do to change that (short of writing a custom LAF)