I ended up using:
git rebase -i C
In the rebase a document will come up for you to edit, you delete the lines for the commits you want to remove (H and I). Then I had to fix a bunch of merge conflicts, and eventually call:
git push origin master --force
I was about 9 commits past the ones I wanted to remove and I had to merge 5 or 6 times, some times the same changes in the same file for whatever reason. This might not be a good answer if you are 100 commits down the line.