This is not a bug report as such because I think this is already being worked on, but more of an info dump if anyone else is running into this.
Problem
When using the properties API from @fore/api to write properties it will silently fail to do so if the property is being set on a Confluence space (and probably the same for Jira projects).
Example code:
import { properties } from '@forge/api';
// ...
properties.onConfluenceSpace('TEST').set('foo', 'bar')
.then(() => properties.onConfluenceSpace('TEST').get('foo'))
.then((value) => console.log(value)); // will output undefined
Debugging into the implementation of the properties API shows that it it internally just maps to the REST API for setting space properties which returns a 401 (unauthorised) response and just silently swallows that response. The 401 is likely a result of this permission bug in Forge: [FRGE-212] - Ecosystem Jira
Workaround
If you can’t use one of the other storage mechanism user you will need to manually assign the correct space permissions to the app user. In my case I assigned my app user as the space admin.