Was having exactly the same problem. After playing around a bit, I have certainly fixed the problem I was having, so hopefully this will work for you too.
I have two mail accounts, number1@sky.com and number2@sky.com. Both are gmail type accounts. In the left hand navigation pane in Mail, you can see the inboxes for number1 and number2. I would go into the inbox for number2, and send a new message. The from field would say it was going to be sent from number2@sky.com. I sent messages to my work address so i could pick them up straight away and check. When they arrived, they would be sent from the name of the person associated with number2@sky.com, but the reply address would be number1@sky.com. Very annoying.
Anyway, the fix that worked for me:
Go into the inbox of the mail account you want to send mail from.
Compose a new message
Next to the "From" field, I have two dropdown boxes. The first is the person (profile) you want to send from, the second in the outgoing SMTP profile that will be used to send it (this is the important bit).
Click on the dropdown arrow on the second, and choose "Edit SMTP Server List".
Now, on mine there were two profiles, both with the "Description" field named Sky. I noticed in the "In Use By Account" field showed both Number1 and Number2 were using the same SMTP profile. Clicking on "Advanced" for the profile they were both using showed that was the SMTP profile for number1@sky.com. This is why both were sending using these details. So, it's necessary to assign the correct SMTP profile to the correct Account profile.
I changed the names of SMTP profile by clicking on each in turn and calling one Number1 Sky and the other Number2 Sky. This helps tell one apart from the other later.
Ensure in the advanced tab under both, they have the correct username and password. So, the SMTP profile for Number1 Sky should have the SMTP uername and password for number1@sky.com, and the SMTP profile for Number2 Sky should have the SMTP username and password for number2@sky.com.
It may ask you to save the changes when you click OK
Then, in the Mail > Preferences > Accounts window, click on the first profile. For me, this was Number1. Under account information, there is a field called "Outgoing Mail Server". Set this to the one you have named to relate to profile Number1. For me, this was the one I called Number1Sky.
Then click on the next mail account, and do the same, only this time set the "Outgoing Mail Server" to the SMTP profile you named for Number2.
Repeat for all other profiles.
Save the changes when clicking OK.
When you compose a new message, you will see more obviously in the two dropdown boxes next to the From field that the mail is coming from Number1 using Number1's SMTP profile, or From Number2 using Number2's SMTP profile.
Now when I send mail, they come from the correct account, and the reply address is correct.
Hope this helps.