I struggled with that some time ago. I can provide a kickstart that achieves what you want, but I also remember vaguely that it worked when done interactive, so maybe you missed some necessary step in anaconda.
Anyways, note that xfs in RHEL 8 has features that are not present in xfs in RHEL 7, notably reflink which is necessary for Copy-On-Write (COW). Depending on your use cases there could be performance advantages with COW. I dismissed that plan in the end because of that. Also note that you can not mount these newer filesystems on RHEL 7, although I suspect that xfs without reflink enabled is backwards compatible (I did not test that)
see the kickstarts that I tried
the kickstart for preserving /home in that gist is the not working one( 01_reinstall.ks), you need a %pre that triggers udev to reread the partition table, e.g.:
Well, in the interactive installer you select your disk and then select custom partitioning, then you end up in the “Manual Partitioning” screen. At the bottom you have the add, remove and rescan buttons. Click on rescan (it seems the equivalent to the parted trick in my %pre) and after that you will see your existing logical volumes.