I did porting of a custom design (based on reference design of TE0720 board) from 2016.2 to 2020.2, below are some observations:
HW
In terms of porting the hardware, it was relatively simple.
Just make sure when you upgrade to 2020.2, the IPs might have a newer version. Check the revision history of the IP and make sure it is compatible with the design.
The system.bd file format has changed from xml to json, so if you have scripts extracting info, you might need to update regex accordingly.
SW
There was a lot of changes while porting the software/petalinux from 2016.2 to 2020.2 because xilinx have aligned more towards Yocto builds
Understand the folder structure of the project as a starting point and see how it all fits.
Experiment changing some kernel and rootfs config and track through where your changes are made. They are generally made in the yocto workspace, you need to use the devtool to pull the changes into your user area.
You need to familiarize with cloning xilinx repo, making changes (to kernel, fsbl), generating patch files and adding the patch files as recipes. You can find them all around the web.
I have found that the petalinux kickstart tutorial from Trenz gives good info to get you started. Try seeing how it is different between the version of interest. I expect the port from 2018 to 2020 should be ok compared to mine.
Some useful links
https://www.xilinx.com/support/documentation/sw_manuals/xilinx2020_2/ug1144-petalinux-tools-reference-guide.pdfhttps://wiki.trenz-electronic.de/display/PD/PetaLinux+KICKstartHTH,
Neels