I started programming in VB all the way back with VB3, I thought C# was too difficult also, but what I learned was you just need to get the Syntax difference mastered and it's a much more robust language to work with.
As far as Unity goes, I don't know where your looking but I have found almost 40GB worth of Video Tutorials, 20GB of assets sources, and a ton of other helpful tidbits; along with 4 different books which start you at the beginning. To me the most difficult part of Unity is getting a hang of its GUI. go to www.BergZergArcade.com and you can download an entire Hack-N-Slash RPG Game Tutorial, last I checked it like 280 videos and stats you from scratch.
other thing you may want to look into is State machines, you really should have that start menu screen in a different state from your actual play screen this way the click on the Play button has no effect on your play screen and you player sprite will spawn in where you specified.
From what I read in C++ Primer Plus this wouldn't work since ptr2,ptr3, and ptr4 are not considered pointers but ordinary int variables, the statement would have to be:
int* ptr1 = NULL, *ptr2 = NULL, *ptr3 = Null, etc...
C++ Primer Plus (6th edition) covers C++ 11, it is very dry in the first couple of chapters as it's designed for beginner's thru intermediate, I also have Beginning C++ through Game Programming, 3rd ed.
One thing I can mention here is that in your first semester you learned c# in what you called a DOS environment, as was mentioned earlier this is actuially a Console environment, and now your using C# in a Unity Engine environment. The reason for the progression is because the Unity SCene editor environment takes care of everything that is GUI based, the scripts you will need to write that will controll what happens in your game is exactlythe same as writing those Comsole based programlets you did in the first semester except now you will need to take the C# coding a bit farther in what your controlling and how you do it. If you have spare time check out some Unity Vids on Youtube specifically for the scripting ones.
You change nothing, that was one of the major changes from VS2010 to VS2012. If your project was based on VS2010 you could have part of your team work in VS2010 and part of your team work in VS2012. If you start a Windows 8 / WP8 project in VS2012 (can only do metro in 2012 anyway) you can't work in 2010 with it.
You could use the best of both listed above. The character stores the list of Quests recieved like an inventory with all associated information including when he recieved and completed the quest. You can the ability to abandon the quest to be able to get it again if you accidently lose a required item, or if you fail the quest and need to start it again. When the Quest is completed/Turned in it goes into the Completed Quest inventory, All Quest givers check this prior to giving quests, this prevents repeating non-repeatable quests and getting multiple copies at same time. As for Dailies or once every x hrs you would check the recieved or completed quest time depending on how you set it up.
You could even use this system to hold Quest Item Inventory so that they do not take up normal limited bag space.
I'd also recommend Unity going by your initial post on what your looking to do. There are plenty of Unity Demo's and tutorials out there to get you started. Check out youtube, and also you can check out tutorials at BurgZergArcade.com