Hi Fred,
The first flash access error you see when you try to send program_keys.sb file to K81 is mostly related to you are trying to program the program once field a second time.
You can see the error coding for program once command.

And for why you will can read back 0x30-0x33 program once field and not 0x20-0x23 program once field. Here is description from K81 RM.
The Program Once Field in the program flash erasable IFR with indexes 0x20 - 0x23 provides 16 bytes of user data storage that can be programmed using the Program Once command but cannot be read using the Read Once command. The Program Once Field in the program flash erasable IFR with indexes 0x30 - 0x33 provides 16 bytes of user data storage that can be programmed using the Program Once command and read using the Read Once command.
So what you see is normal.
Hao