There is not much comment we can give on those projects without more details.
KiCad V5 projects and earlier have some migration problems, because those projects depended on external libraries, and/or the default libraries of the installed KiCad version. After the transition of KiCad V5 to KiCad V6, there were quite a lot of people who had deleted (or not backed up) the [project]-cache.lib and [project]-rescue.lib libraries, while those have always been an inherent part of the project.
From KiCad V6 and onward these files are past tense. KiCad saves all used symbols in the schematic files, and all used footprints in the PCB file. KiCad does maintain links to external libraries, but updating symbols and footprints from those libraries is optional and must be explicitly initiated by a user.
The next most common cause is caused by improvements in KiCad. Newer KiCad versions have extended and more stringent ERC and DRC checks. As a result, they flag problems in projects that were already there, but older KiCad versions simply could not detect.
And there are a few things that are actually changing, and have the potential to break old projects. One of them is how far zones are retracted from the edge of the PCB. In old KiCad versions, the edge of the PCB was treated as track segments, KiCad retracted zones depending on line width and some clearance. The latest KiCad has a value for this in the board setup (For some time this default unfortunately was set to 0, which resulted in zones going right to the edge of the PCB and this is really bad, especially on multi-layer PCB’s). Net ties have also changed a bit.
“all necessary resources” is wide and muddy. A KiCad V6 (and newer) has all symbols and footprints inside the project. This makes all the important stuff pretty much future proof. But there are still things that are not archived automatically within the project, such as:
- The paper layout file.
- 3D models.
- Datasheets, (they are just links in schematic symbols to somewhere else).
Because newer KiCad versions store symbols and footprints inside the project, it’s much more robust and future proof. KiCad also has options to export these resources into a external (project specific or global) libraries.
And again, without knowing more about the problems you encountered, there is nothing we can do. It is possible that you are attempting to fix things in the wrong way (KiCad has lots of ways to do things). It is also possible it could have been solved with a handful of mouse clicks. I used to have problems with upgrading projects, but as KiCad improved over the versions, and my knowledge of KiCad also grew, I don’t have such problems anymore.
So for the next time, I suggest you report back with the errors you encounter.