TL;DR – Your problem is moving from the domain's root to a subdirectory. As we are also saying for our Joomla! extension: it is strongly recommended to create sites in subdomains, not subdirectories. Moving FROM a subdirectory TO another subdirectory or the domain's root is far less problematic. This holds true for both Joomla! and WordPress (and pretty much everything else we've tried backing up and restoring)
The gory details
Images: this is not a problem unique to WordPress. Joomla! has the same issue. In fact, it is not something you can possibly "fix" automatically. All CMS store relative paths. If the installation path of your site relative to your domain's root changes (moving from root to subdirectory, from subdirectory to root, or from one subdirectory to another) the stored relative paths are now invalid. If you are moving FROM a subdirectory TO a different subdirectory / the domain's root it's easy to perform an automatic replacement and we do. We substitute /your_old_subdirectory with / and we're done.
Moving from root to a subdirectory, however, is a whole different story. Think what would happen if / was replaced with /subdirectory in your content. If you had a link to http://www.example.com/something.html it would now become http:/subdirectory/subdirectory/www.example.com/subdirectory/something.html. That's a major problem. Dealing with it requires to have a context on each URL being processed. This means that we would need to open each article, parse the HTML, parse every img and a tag (probably more tags), decide if it's a relative path and then do the replacement. This is possible... but it will cause memory usage, CPU usage or timeout issues on the majority of servers. It's like performing a backup which requires 10x the CPU power of the regular backup. Therefore this is a case we can't handle automatically.
Regarding the menu items: it is also exactly like our Joomla! extension. The problem you have is your .htaccess file. Just like with the Joomla! extension we do not touch the .htaccess file. The .htaccess file WordPress created was made for use in the domain's root. You need to go to Permalinks and save your options again, which creates a new .htaccess for the new location of your site (the new location of your site is stored in WordPress during the restoration by our restoration script).
Note: would you mind us making this ticket public? I think it'll be useful for other people using our backup software as well.
Nicholas K. Dionysopoulos
Lead Developer and Director
🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!