I spoke too soon.
Everything appeared to be working. I decided to use the Weight Based Shipping, and it was behaving as I expected with the two predefined locations (USA and Canada) plus another one I added for testing. So I added 6 more locations - one for each of the zones I needed, and added a bunch of countries to each. The locations show up in the "Additional Settings" section of the Weight Based Shipping plugin, and I can add the shipping weights and prices there. All good so far.
But now when I add some weight/price text in Weight Based Shipping, and click "Save", I get a 403 Forbidden error. The message says it's accessing this:
/index.php?rt=extension/default_weight&s=admin123&token=egotT9qRoiWKpXZMXnW0bp1k9sv2XXhV (port 443)
I've checked the permissions on that file - it's 644, which I believe is correct because all other files have the same permissions. In any case I certainly didn't edit any files or permissions or anything - I was using the admin web interface to add locations and shipping weights. It seems it randomly stopped working.
Some things do still work - like any time there's a little tick box to save individual changes - that seems to work still. But the weight/price text boxes don't have that tickbox. I have to click on the "Save" button at the bottom, and that's when it shows the error.
I tried deleting all the extra locations that I added, leaving just USA defined. So I only see the USA region on the Weight Based Shipping page now, but the 403 error still occurs.
Most of the admin website still works. I can save changes on the Fast Checkout extension page. The only thing I've found that doesn't work is the Royal Mail shipping extension, which now has the same problem. Individual save tickboxes work, but the "Save" button shows that error. I'm positive I was never seeing any 403 errors before I added more locations.
I've looked in System -> Logs -> Error Logs, but there is nothing in there.
Any ideas?