The fact that you have multiple domains using the same server is irrelevant to SPF. Domains that use Google Apps typically have only one entry in SPF, but Google Apps probably hosts millions of domains. All you're trying to say with an SPF record is the servers that are authorized to send mail on behalf of the domain.
Set up SPF records in the DNS for each domain separately and independently. In the SPF records list the IP / domain of the server(s) that can send mail on behalf of that domain. Ignore other domains on this server while you're doing that. Here's a working example for a site that uses Google Apps, which may be helpful to show you what they usually look like.
v=spf1 a mx include:_spf.google.com ~all
I suspect your problem is you haven't set up SPF for domain2 in that domains DNS.
The SPF records for your domain1 are malformed. Remove the recursive references.
MXToolbox says the problem with your domain2 is the PTR record, with a reverse lookup. It's only a warning though, not an error. I don't even have PTR records for my domains and both SPF and DKIM pass with no problems.
So in the end, I don't think any of that actually answers your question as things seem fine to me. I would send an email to accounts on a number of reputable email providers (office 365, fastmail, zoho, etc) to see if they pass your SPF. If not the headers in the email will probably give a bit more detail.