Have a few problems with my phone, some friends have the same one and say they never have the problems like I am having. It's mostly to do with the messaging widget and/or the screen.
While inputing a text on the Android keyboard, if I have to delete anything, it will randomly put in a TON of smiley faces, takes a while to get them all deleted and if I don't slowly tap the "DEL" it will input more smilies. Another issue I'm having is that, it will randomly take out my contacts picture and name in the text thread list and replace it with their telephone number. I usually have to reboot the phone to get it to go back to my contacts pictures and names. Now my last issue, every so often, it won't send pictures. It'll say sending and nothing will happen, or it will give me an error message saying it has expired, or it will send it HOURS later. lol.
I use swiftkey instead of the stock android keyboard. I like it better. I don't care much for Swype. You can try Swiftkey for free for 30 days.
Concerning your contacts, I would try resetting the contact data:
From a home page, press menu
Tap settings, applications, manage applications
Tap the All tab and scroll down to Contacts Storage
Within Contacts Storage, tap Clear data (my data is 4.48MB)
Tap Back, Back, Back, Accounts & Sync
Tap your Gmail account and toggle the check mark for Contacts if the sync indicator is not circling around
Once your contacts are re-downloaded, it may help the contacts issue you were having. After running this process, my contacts memory went down to 4.46MB, so don't expect to gain a lot of memory.
For pictures, try uploading them to your free PicasaWeb account from Google, and sending the link. MMS doesn't handle quality pictures very well at all. My Optimus automatically links to my Picasa account in the media viewer.