I have dealt with many legacy systems running Windows XP that have critical data on them. Most backup solutions are either a) proprietary formats or b) are designed to back up over a network connection. The legacy systems I use are not connected to any network, and proprietary formats are very difficult to use.
For these reasons I wrote Windows Local Backup (WLB), a liberally licensed (Apache 2.0) deduplicating backup program written in C. WLB uses SQLite3 for storage and SHA256 hashing for deduplication. SQLite 3 is a format recommended by the Library of Congress. This ensures portability (most computers can read and write SQLite3 databases), deduplication (identical SHA256 hashes are not stored), and consistency (SHA256 hashes can be compared to ensure data was not corrupted or tampered with).
WLB is written using WinAPI in one ~600 line long C file. It was tested on a Windows XP x86 SP3 system and was compiled with TCC. It was written with the Unicode WinAPI in mind (I have not tested it with Unicode yet). It should work with MSVC but I do not have a copy of that for Windows XP so I have not tested it. All binaries are bundled with the repository, but all binaries are open source so you can compile or modify them yourself if you want to.