At first, I attempted to do a full 3D Motion Track. I properly tracked as many points as I could, but when the camera motion was solved for, it was extremely jumpy. So then I decided that since most of the motion in the video is 2D that I would only use two tracks, and then take the image of the submarine and apply the 2D stabilization node to it. I'm kind of surprised that it stabilized the video perfectly (including rotation), but when I used the node to translate the submarine placeholder image, it slid around quite a bit.
The effect it had can be seen in this video:
So the next thing I did was use one of the tracks, create an empty for it, import the image as a plane, and make the empty a parent of it. This worked excellent for translation of the image, but it did not take into account the rotation needed to fit nicely into the video motion (which is normally calculated with a second tracker so that rotation can be stabilized in normal 2D stabilization). How is it possible to properly accomplish the desired effect?