Part of the patch is puzzling me before we had (!setter && !getter) to filter out properties that are in fact fields and thus have neither getter or setter. What is kept are read- or write-only properties. With your (!setter || !getter) those are removed as well. I can understand from the JSON perspective, but for getProperties this looks wrong.
Next is the element.getModifiers() != 1, which seems to be there to filter out all non public fields. Since we filtered out all fields before already, thus is surely ok in principle, but you don't do something like that for MetaBeanProperties. They can be protected or package private as well imho. Why should getProperties show a protected MetaBeanProperty, but not a protected CachedField?
Changing getProperties to return many more is a potentially breaking change, so it surely wouldn't go into 1.8.x or 2.0.x. I think for 2.1.x it is too late. We have to investigate though how that method is used before we can say that it goes into 2.2, otherwise the next possible version would be 3.0 only. I would suggest finding another way to tackle the problem and keep the changes to the json classes itself if possible.