For #3, you need to log in to your iCloud account, head to the profile and security options, and make an application password.
Thunderbird will find all the appropriate settings once you provide your main iCloud email, and you just need to use the application password and everything will just work.
Thunderbird doesn’t understand aliases by default (apple’s mail apps on MacOS and iOS do). You’d need to add the alias under Account Settings -> Manage Identities for each alias (which is any custom email domain accounts you add, assuming you want to send mail as that user). There is only one account: the iCloud login. Everything else is treated as an alias, and doesn’t create its own inbox - everything goes into the singular inbox.
As the other posts said, email won’t migrate automatically. The easy way to do it, though, is setup your old email and the iCloud email in email and just drag and drop your email from the old email to your new iCloud one.