The only way to track changes in a git submodule is by recording a revision that is accessible from a remote. But what you are trying to do is make changes to the git module, and record those changes in the parent (i.e. main project git repository). This is not possible, because git only records revision number and remote when git submodules are added.
This is where forking comes in. You can copy the entire history of a repo and push it to your own repository. I recommend pushing your changes on top of the revision you are currently using. I do this all the time when waiting for pull requests to get merged. If you aren't using github and don't have a fork button, you can still fork using these steps.
Create a new repository on your account with whatever hosting you are working with.
Clone the repository you want to make changes to. Clone this outside of your main project.
Change the remote to the url you just created and push the branch with your changes in it. This example i'll use the master branch. Use the same url you used to clone the repo.
git remote set-url origin git@github.com:username/repo.git
git push origin master
Then just change your git submodule to point to the repository you just copied. Look at Changing remote repository for a git submodule
I do this whenever I make changes to a dependency and need to wait for it to get merged and approved. Hope this helps.