Adding an SPF won't help with mails not going through, that's not why SPF exists.
Do you get bounce messages for those that never arrive? Or are you able to check the SMTP logs?
And just in case...
v=spf1 include:aspmx.googlemail.com ~all
This says that the SPF record should also include the SPF record stored at aspmx.googlemail.com. If you were to run "nslookup -q=txt aspmx.googlemail.com" you would see that it redirects to _spf.google.com, which (finally) states that it will allow this lot to send as the domain name:
"v=spf1 ip4:216.239.32.0/19 ip4:64.233.160.0/19 ip4:66.249.80.0/20 ip4:72.14.192.0/18 ip4:209.85.128.0/17 ip4:66.102.0.0/20 ip4:74.125.0.0/16 ip4:64.18.0.0/20 ip4:207.126.144.0/20 ?all"
Quite a lot really :)
Chris