Hola CalgaryCorpus gracias por responder.
Cita: Si cambias la implementacion interna y no te sirve el resultado, esta mal lo que estas usando o como lo estas usando?
Resulta que fallaba la forma en que lo estaba usando lo que tenía que hacer era la clase interna KeySet estática y en la función navigableKeySet de NavigableSubMap debía retornar una nueva instancia de KeySet pasándole el map que usaba la clase navigable.
Cita: Sugiero que tests unitarios apoyen el comportamiento que esperas de las estructuras que estas usando. .......
Resulta que lo que viste mi idea en un principio era comparar el TreeSet casero con el TreeSet original, y si lo que hacía el casero era igual al original me daría cuenta de que está bien. De hecho ese test lo puse porque no me daba cuenta del error ya que es algo mío para luego hacer los test que debería. Pongo el código:
https://github.com/detectivejd/TreeS.../treesetsimple
Espero sus respuestas y saludos.
NOTA: El código sufrirá mucho en especial Cuerpo.java, el resto se mantiene.