Does by chance the encryption domain include multiple subnets? If it does, could you try an experiment and reduce it to a single encryption domain?
An issue I have seen (in general) is there are two ways of building the SA:
1. Creating an SA and then adding additional encryption domain combinations via negotiation.
2. Creating a separate SA for each combination of encryption domains.
Meraki only supports one of the two methods above (sorry - I don't remember which). My gut feel (could well be wrong) that it can't handle method (1) and it sees each new negotiation as a request to replace the existing SA rather than appending to it. This results in the appearance of the VPN going up and down a lot.
An easy first step to determine if this is the issue is to reduce to a single encryption domain on each side. If the problem goes away, you know you are on the right track.
ps. I have gotten sick and tired of resolving these, so now I often deploy StongSwan on Unbuntu in a VM. It supports every combination of every option that you can think of, and is rock solid. And the software is free.