Default layout methods will hard-code Start Menu's pinned list. This is intended for users that don't want unexpected surprises from other apps pinning themselves. Some alternative solutions:
1. Use default layout, but run a Post-Setup (User) script to remove the JSON file so it's no longer present to reset your Start Menu after every logon.
2. Install Windows w/o any 3rd-party apps. Clean up your Start Menu, and export the start.bin file (or start2.bin for W11 22H2) back to your ISO image. start.bin is a binary capture of your layout (vs. default layout which is a template), and allows updating by the user.
The drawback is you have to wait after your first user logon to copy start.bin over, since the Start Menu's AppDataLocal folders haven't been created for you. Then you have to logout immediately to have it take effect the next time you logon.
crypticus is a big fan of this solution.