This is because the logic in Calendar::fieldDifference gets confused when adding positive numbers to the UCAL_YEAR field goes backward in time, which is the issue described in #9226. Either we need to fix that problem or we need to change the logic in Calendar::fieldDifference. Something similar is likely to happen with Gregorian computations across the CE/BCE boundary.
Have not tried in ICU4J, I suspect the problem is there too.
May be addressed by changes for #9226 to make adding a positive value to year always go forwrd in time.
This should have been fixed by #9226 so this ticket may just be for adding a test to verify that.
And in fact all that was necessary was to just add tests to verify that the problem described here was fixed by the changes for #9226.
For C, I just added the tests to the existing tests that were created for #9243. J did not yet have the tests for #9243 (that was the subject of #9401) so I added them and then added the cross-era tests added ni C for this ticket. Note that this addresses part of #9401 (adding the tests), but these test revealed the need for code changes per #9401, so those changes were done under that ticket.