Somehow I managed to get an unprintable character embedded in my doc, and this made it so that exported epub files would only partially display. The character in my case was 0x10 / decimal 16, and I have no idea how it got there. Eventually by copying the text out to a separate editor I managed to figure out where it was. Scrivener should probably convert unprintable characters like this to something safe when exporting, or possibly give an error during compile.
If anyone else happens to run into this, the easiest workaround is to delete and re-type the paragraph after the last one that Books or your e-reader displays.