I have a project in which I\'ll have to process 100s if not 1000s of messages a second and process/plot this data on graphs accordingly (The user will search for a set of data i
If speed is your priority, C++ might be the better choice. Try to make some estimations about how hard the calculation really is (1000 messages can be trivial to handle in C# if the calculation per message is easy, and they can be too hard for even the best optimized program). C++ might have some more advantages (regarding performance) over C# if your algorithms are complex, involving different classes etc.
You might want to take a look at this question for a performance comparison.
Separiting back-end and front-end is a good idea. If you get performance penalty from having one in C++ and C# depends on how much data conversion is actually necessary.
I don't think programming the GUI is a pain in general. MFC might be painful, Qt is not (IMHO).
Maybe this gives you some points to start with!