A. Keeping all Ubuntu files in one partition is preferred; when you need to reinstall, you can back up, then verify, all the files under home before reinstallation.
B. I would keep the 128 GB SD Card separate from the root partition of Ubuntu, so you can easily access it from Windows, and remove it if needed. They have a significantly higher failure rate than SSDs or HDDs, and I would not trust a filesystem split between an SD card and another drive.
You can access files for read, write, create, and delete in the Windows NTFS partition if you wish to share files across both operating systems; however, Windows does not access files in Linux filesystems well. Every time I have tried to access a Linux ext4 partition from Windows using drivers, I have ended up with a corrupted filesystem.
C. RedHat says 4 GB or more for swap. Swap partitions are passé in Ubuntu since before 18.04 LTS; the default now is a swap file equal in size to your RAM, so you do not need a separate swap partition, and since Ubuntu is much more efficient in the use of swap. dphys-swapfile allows autogeneration of the swapfile as well as turning it off when no longer needed. Here's a good primer on swap and zswap, an alternative which uses CPU and memory instead of disk space if you've got a fair amount of RAM and processor power available. zram is also worth considering.
D. When you do the dual boot 'alongside' install, the Ubuntu installation app, Ubiquity, will ask you how much space you will take on the SSD for Ubuntu. If it's occupied be a Windows-style NTFS partition, Ubiquity will resize that NTFS partition and make space, whatever you specify, in the SSD for Ubuntu. You can also, later on, reallocate space for either partition, if you boot from the Ubuntu LiveUSB and run gparted.