So, I found out why fullscreen mode was going crazy. There is in fact an environment variable that SDL looks for which controls the behavior of fullscreen mode when there are multiple monitors involved. If there are multiple monitors and the environment variable is missing, strange things happen.
I made a fork of Valyria Tear with a patch to set this variable. I put it in main because it has to be set before SDL initializes, so I put it just before that happens.
https://github.com/endoalir/ValyriaTear