Yes, chi-square. I had a similar problem lately, and perhaps you may use my solution. I believe that for the purpose of chi-square test, prior to computing the chi-square statistics you are permitted to aggregate the categories with low expected count into one category named "other". Then you are good to go, because you will have very few cells with low frequencies, so you meet the chi2 condition of 80% high-frequency cells.
Below is my Python implementation if you are interested. Note it implements the chi-square test for independence to compare two variables (while you need the chi-square goodness of fit to compare two populations, which is slightly different) but I believe you could directly use my code with the following approach.
If you introduce a variable (column) "tree" so that each record (leaf) would have the tree number associated to it (it might be that you already have such variable) then this becomes your target (dependent) variable, against which the independent variable "damage type" can be tested.
Then the problem you described can be reduced to the chi2 test for independence between these two variables. In the result you will see if the distribution of the variable "damage type" is dependent of the tree specimen or not.
The implementation is here (look at the usage file), and here is an intro article about it.
I would also welcome critics or improvements to the approach I propose.