I can't really comment on how to migrate your project to Spring, because I don't know what it looks like and I don't understand your explanation of the cumbersome parts.
Regardless, the easiest way I've ever dealt with persistence in mature applications is through the use of the repository
pattern. Your model should only know about other model classes, and should never have to work with databases, files, or pretty much anything that's not part of your business layer. When you want to save or transmit or do anything else that involves serializing your model, you let an external controller class (like a REST controller in web applications, or an event handler in desktop applications) pass that part of your model to a repository that knows how to flatten the model. You can do this regardless of whether you want the model to serialize to XML, a database or an internet connection. The repository is responsible for the conversion.
For a repository that reads and writes to XML, you can use the JAX-B API to easily flatten your classes as beans. Some people use the annotations directly in their model, but in my experience this invariably leads to headache and bugs. Don't be afraid to create beans that seem like they're copies of your model. It may look like code duplication, but they serve a different purpose and it will help you to isolate your model from any specific kind of data representation.
Try to avoid the Active Record pattern. It works great for small applications, but as applications mature, Active Record becomes a hell and only gains more circles.