This is indeed possible. I added my own CalDAV and CardDAV servers this way:
Add a new Google account and enter some random account data. The login should fail.
Reboot your phone (this is important!)
Select the just added Google account and change the default IMAP, CalDAV and CardDAV settings to your own ones (those from Yahoo).
Save, activate and sync.
iCloud contacts and calendars are not supported on Windows Phone 8.
The next update to Windows Phone 8, "Amber", is said to feature CalDAV and CardDAV support. This should enable syncing contacts and calendars with iCloud on a Windows Phone 8. Amber is expected to arrive in August 2013.
In order to use the backups, you'd need to do a hard reset (which wipes everything on your phone), then log in to the same MS account and restore from the backup. If you have multiple MS accounts and one of them is working on your phone, you can copy the contacts over. To do so, follow these steps:
Log in at https://outlook.live.com/owa/?path=/people with ...
I'm not sure if this will work with your account scenario, but I have done a similar in the past with some accounts of my own.
If you already have an old and new microsoft account, migrate the xbox gamer tag to the new account.
Log in with the account you want to change
Go to Settings and select Account
Scroll right to Your Information and select Account ...