You can easily add you own repos to each submodule as you modify them. You need to for the repo in github so you have your own fork. cd to the module and then rename the origin which is pointing to original repo to be upstream. the you can add your repo as origin. (note the example below is for mavlink module, but you would do the same for each module dependency you wanted to work on)
$ cd ardupilot/modules/mavlink
$ git remote rename origin upstream
$ git remote add origin https://github.com/<my_username>/ardupilot.git
$ git checkout master (or git checkout -b my_modfied_branch to create you modified branch ready for a PR)
then to push you use the git push origin <branch_name>
to save in your own repo in github
Do the same of a clone on another machine, you can then go to the module dir and pull down, and push up your changes to your local repo