Que tal,
No se si implementaste el equals de la clase App, ya que según la documentación de la interface Set el containts se evalua con equals (en caso de que no sea null), por lo que aunque tengan los mismos parámetros no son el mismo objetos y sin sobreescribir el equals compara las instancias tal cual.
JavaDoc Set
Saludos,