Проблема в вашем компараторе, вы не обрабатываете случаи, когда объекты равны (вы должны вернуть 0). В любом случае, в вашем случае вам даже не нужно явно использовать пользовательский компаратор, вы можете создать свой набор следующим образом, и он будет работать:
TreeSet<Integer> set= new TreeSet<Integer>(Collections.reverseOrder()) ;