Well, I finally got SWFUpload to upload Files that are attached to a DataObject, except I started running into an error when trying to upload PSD files, which will be the primary type I need to upload. SWFUpload is giving the generic 500 internal server error, so I started Googling around, and found that a common cause was max file size. I checked that, it was right, so I dug down and figured out that File does not accept PSD file types, so it was throwing an error, even though I set SWFUpload to accept those (which I'm now assuming only controls the select window on the client side).
So I found the File base class, and $allowed_extensions, added 'psd' to the end of the array, and now it works. I don't like that, because it's not very modular, and I'm having to change the core to make my module work, which is kind of yuck, so I've been trying to find a way to extend from the base class and add more $allowed_extensions, but nothing seems to work.