That registry key is created by the Windows API itself, function RegisterPropertySchema from the IPropertySystem Interface, when registering the property schema. The use of that environment variable "%ProgramFiles%" for the property description schema path seems to be wrong, because such variable maps differently if expanded by a 32-bit or 64-bit application. I have no idea why the API uses an environment variable for that, and not the passed plain path (probably a bug?).
PDF-ShellTools call the RegisterPropertySchema function from a 32-bit application. Interestingly, if called from a 64-bit one, that key changes to "%ProgramFiles% (x86)\PDF-ShellTools\PDFShellTools.propdesc", which is also wrong if expanded by a 32-bit application, that will get "C:\Program Files (x86) (x86)\PDF-ShellTools\PDFShellTools.propdesc"
I haven't read any info, in the property system documentation, about the need to have the property schema file duplicated to make it accessible by 64 and 32 bit applications/shell extensions. Do have any info about that?
Another question that remains is why that OneNote privilege elevation tool (ONELEV.EXE) is reading that key anyway. It is using an API function for that (and what), or is reading it directly (and if yes, it is a wrong method)?
I ask this because the property schema seems to be correctly registered this way, with both 32-bit and 64-bit applications able to enumerate/access theses PDF-ShellTools custom properties.
What happen with OneNote if you remove that copy of the PDF-ShellTools folder from the "C:\Program Files\", and change that registry key to "C:\Program Files (x86)\PDF-ShellTools\PDFShellTools.propdesc" ?