Como eu desenvolvi um sistema de Armor Stand clicáveis e precisava que elas NÃO fossem removidas eu fiz algo que funciona, na verdade vou apenas te passar o código referente ao "check" se uma entidade é um item frame :) Espero que ajude
if (e.getEntity().getType() != EntityType.ITEM_FRAME) {
E bom, é só isso, no seu evento de limpar as entidades você irá adicionar isso e quando as entidades forem limpas os Item Frames não serão excluidos.