I'll address the need to wipe /data first.
When coming from stock or most stock based roms to newer versions of android and vise-versa you must wipe the /data partition. From my understanding this is because of the changes Samsung made to how android handles or formats the /data partition in their modified version of android that makes it incompatible with most roms that is AOSP based like CyanogenMod. I don't know why the d2lte builds worked but I ran in to that issue back when cm-12.0 (android 5.0) came out and a wipe was the only fix.
Though when installing new roms, I typically recommend wiping /system, /cache, /dalvik, and /userdata (not including internal storage) before installing the rom.
However, everything but the external sdcard should be wiped if the conditions listed above have been met.
When I said Rom, I was meaning any Android 6 based rom including cm-13.
Dirty Flashing, however, refers to the act of flashing a rom (not stock) without wiping /userdata or other partitions. So yes it does involve the system partition, but usually it's not the only one that is effected, /boot is usually included as well.
I don't recommend any wiping after flashing anymore, not since early android gingerbread days. I dont know how the Virgin fix works, but with the opengapps, and maybe others, for android 6 there are important files stored in cache until the first boot, after installing a new rom, that are needed or will cause the exact problems you are describing when you get errors like the system is not responding. Flashing the gapps after the rom has started the first time after installing it will cause the same problems.
Having to flash gapps before the first boot is a new thing related to how android 6 handles app signing and how Google signs the Google apps for the /system partition. Here's a reference that I used to understand why.
https://github.com/opengapps/opengapps/wiki/Notes-for-Android-6.0
Last, from what I can tell, the problem with 4G isn't related to any specific partition. However, it does somewhat affect the /system partition since, from what I know, the problem stems from the APN's. I don't know if they are wrong, not included, or just handled wrong, but I do know these kinds of issues generally stem from some sort of APN issue.
https://en.wikipedia.org/wiki/Access_Point_Name
An example of the steps with the assumption someone was coming from the stock android with TWRP installed and everything to be flash stored on the external sdcard. Assuming the user is in TWRP to start.
- Issue a full format of the following partitions, /system, /userdata, /internalstorage, /cache, /dalvik
- Add the rom to the flash queue (eg. cm-13.0)
- Add an android 6 compatible gapps to the queue
- Add the Virgin fix to the queue
- Run the flash queue (or flash the above file individually without rebooting)
- Reboot into system for the first time
- Once booted reboot into TWRP
- Add the same rom zip to the flash queue
- Add the Virgin fix to the queue
- Run the flash queue (or flash the above file individually without rebooting)
- Reboot to system
- Everything should be functioning (at least mostly)
- Enjoy
It's starting to get late and I am tired while writing this, so if I forgot something or something isn't clear please let me know.