At this point, how do I merge just my changes for submodules+main?
Merge your branch normally in the main repo (the one including your submodules).
That will update the gitlink (special entry mode 160000) representing the updated SHA1 of your submodules: when you merge in a main repo, you don't merge file in submodules, you just update those gitlink SHA1.
Then, after the merge, run a git submodule update, to update the content of those submodules.
Merging a branch in the parent repo doesn't mean you have to merge anything in a submodule: the submodule is there to dissociate the development of a nested git repo from its parent repo, while keeping a precise reference of the former in the latter (the gitlink).