Dan,
Thanks for testing a new situation for SS. Here's what happened.
When you reducing endyr by 1, this placed an observation in the forecast era. That should be OK and we now intentionally allow that so MSE and other procedures can know to generate expected values for these forecast observations.
The problem was that we never tested a forecast observation in a multi-area model. The call to get_expected_values() in forecast was within a loop of areas. But get_expected_values() function has an area loop within it and chaos results because the code is not sufficiently modular.
It was easy to move the call to get_expected_values outside of the area loop and all is working fine now.
Also I found that the forecast file input for benchmark range of years was not robust to years > endyr, so that code is now more robust also.
We will be releasing 3.30.16.00 with changes and a few other fixes within a couple of weeks. It will have one largish change in which we introduce custom selection of report modules so requires an upgrade of r4ss also.