I may have at least partial answers for you.
First, runoff retention, as you mention, is the amount of water absorbed by soil and vegetation, so the fact that you have zero retention on the vegetated land cover classes suggests a problem. My guess, looking at your biophysical table, is that the table is missing some entries for some of the intermediate vegetation cover classes (e.g. LULC #12, 62, 71, 72, 81, 82, 122, etc.). These appear to be present in your map but not in the table. I am not sure what happens when the model goes to look up a lucode in the table and doesn’t find it, but that might explain the 0 retention volume for those cover classes. For these intermediate cover classes, you could give them slightly lower curve number (CN) values than their ‘open’ cover equivalents (e.g. LULC #60, 70, 80, 120) to reflect the greater tree cover, or give them the same number as their respective open classes for now.
Second, in the example biophysical table as well as in yours, the ‘water’ and ‘wetland’ classes are given a curve number value of 1.0, which corresponds to a case of no retention in the SCS Method used by the model. I think this was an arbitrary choice to make open water show up in the output maps as places of localized flooding, but the CN could be changed to 0 (complete retention) if you are more interested in understanding the land’s retention capacity. However, this doesn’t explain why your ‘water’ cover classes have the highest (non-zero) retention in your output map. These pixels should have 0 retention, based on your biophysical table, so I am unsure what’s going on there…
Lastly, if you need a reference on the SCS Curve Number method (I don’t know if it’s included in the User’s Guide or not):
Hopefully your issues will be resolved by adding entries for the other land cover classes.