I'm really stumped with the problem. I have a polygon layer with no intersects or holes and I need to remove some 'islands', as defined by attributes of a certain size within the layer.
It's a hard thing to explain, so refer to the picture below. The different colors represent different attributes within my layer. What I need to do is remove the orange islands of certain size (less than 5000m²) that do not share border with an Orange, Green or Neon polygon.

I cannot simply select all of the orange polygons under a certain size because that would remove some polygons that make up large areas of polygons.
I can't dissolve the orange than remove polygons under a certain size because I will lose the individual polygon shapes which are extremely important.
I am really stumped here guys, I'll take a simple solution or any advice. I am pretty handy with python so if you think a programming solution is best let me know.