Right, it sounds as if the speakers were receiving the output from the MS synth. The MS synth is actually pretty poor quality (to put it politely). If you need a "General MIDI" compatible synth you are better using the TTS1 which comes with Sonar. The MS one is there in Windows as a kind of last resort in case a general-purpose PC has no other way of playing back basic MIDI files for games and such like. The Cakewalk instruments can also do a far better job than a General MIDI synth and then there are the full-fledged sunths as well.
Now the piano and repeated notes. You don't say what the piano is, but can I assume it has built-in speakers, separate audio outputs and MIDI inputs and outputs, either as 5 pin sockets or USB? And you have the MIDI connected to the PC and inputting to Sonar but the piano has no audio connections to the PC?
I"m going to assume that since you don't mention a separate audio interface the PC speakers are connected to the built-in soundcard in the PC. At this point it doesn't really make any difference in the explanation but might be useful to know.
Assuming the above, what is happening is this.
When you play a note on the piano it sends MIDI to Sonar. It also plays that note through its own speakers. Sonar in turn will send that MIDI out to whatever is set as the output in that track, In your case this appears to have been the MS synth.
If the piano's audio output is not connected to Sonar I suggest you do this. First disable the MS synth in Sonar's properties. Connect the piano's MIDI and make the input and output active.
Then launch a fresh project and load into it a software (vsti) synth (e.g. TTS-1 or one of the Cakewalk sound centre instruments). In the dialogue Window that comes up tell Sonar you want just the main stereo outputs from the synth and to create a MIDI and an audio track, not an "instrument track" (which is kind of the two combined, and harder to debug).
The MIDI track's input should be set to the piano's MIDI out and the MIDI track's output should point at the vsti you inserted. The MIDI echo on the track should be switched on. If you turn the piano's speaker volume down then with any luck you should just hear the vsti playing through the PC speakers. There may be quite a delay between you pressing a key and the sound appearing. That's what's called "audio latency" and is complicated enough to need a topic of its own (or search this Forum for "latency").
Now, to hear the piano from its own speakers only you need another MIDI track. This should have its input as the piano and output pointing back to the piano. Switch the piano to "local off". This disconnects the keys from the piano's engine so the piano will now only respond to MIDI coming in to its MIDI in socket. The idea is that you play a note, the MIDI hoes to Sonar which echoes it back to the piano which then plays that note.
"Local off" is used for two reasons. Firstly if local control is on and the piano receives MIDI from Sonar, when you play a note the piano will play it twice, once from the key and again a split second later as Sonar echoes the MIDI back to it.
Secondly if local control is on, when you play a synth in Sonar the piano will also play the notes through its own speakers, because it will be obeying its keyboard, which for this purpose you don't want.
So. Software synth MIDI tracks should receive from the piano amd send to the synth which outputs through the PC speakers. When you actually do want to hear the piano the MIDI track should receive MIDI from the piano and send MIDI back to the piano.
There may be issues depending on whether MIDI channels are selected correctly for the piano, but the vsti and its MIDI track should be happy with the MIDI input as the piano and channel setting in the pull-down as MIDI OMNI.