Never mind, I’ve found the issue. I have a custom sanitize callback that is called as part of the data saving process, this method was nullifying almost everything.
The only parameter working was due to using a different sanitize method, which didn’t have bugs.
I only found out by looking at the call trace, and realizing that the issue was in the sanitize callback.