Aha, I have solved my own problem. Sometimes it is hard to tell if I am completely misunderstanding something or if I just have a simple confusion or bug with how I am navigating the filesystems and conventions with the Axoloti. This was a case of the latter!
For my own future reference and for anyone else who needs to do this kind of thing (e.g. control the patches to load using a customized set of MIDI input messages from whatever hardware you are using), the right way to do this is to make a controller object subpatch. Basically I followed these steps:
- made a little mini patch (to be saved as a subpatch) that takes in and selects for the MIDI messages I want to use (only pgm change messages over 10, in my case). It then uses the string/indexed and patch/load fn objects to pick and load a filename based on the pgm change number.
- renamed my set of patches so that they work with this indexing convention (e.g. "PATCH_011" and so on) and uploaded them each to the axoloti.
- saved my little mini controller patch as a subpatch (.axs) in the 'controller' directory that axoloti uses (which I found by searching for the pgmchange.axs subpatch that is "factory-provided" to do patch switching).
- in the preferences menu, set my new subpatch as the controller object.
A couple of "gotchas" that had me stuck... finding the right place to put the subpatch, and the right syntax for expressing its path/name in the preferences menu; also getting the syntax right in the string/indexed object so that it finds the patches correctly once they are uploaded to the axoloti.
The most useful threads/messages for getting unstuck were:
https://sebiik.github.io/community.axoloti.com.backup/t/how-to-use-controller-object/910/2?u=kat (describes how to make a controller object and how to modify the preferences settings)
https://sebiik.github.io/community.axoloti.com.backup/t/help-with-program-change-and-patch-load/1961/4?u=kat (for getting the syntax right in the string/indexed object)