I may have found my own solution for this issue.  I've written a simple class that checks the Fsm.FsmList, and puts the count into a static variable.  Each time the scene resets, this variable is compared to the actual count, and if they are different, we reset the FsmList using the SanityCheck function (at least, I think that's what it does!).  Here's the code, and you just have to add it to a single object in your scene.
using UnityEngine;
using System.Collections;
using HutongGames.PlayMaker;
public class PlayMakerStatics : MonoBehaviour {
	private static int fsmCount = 0;
	private int fsmCurrentCount = 0;
	
	// Use this for initialization
	void Awake () {
		if(fsmCount == 0) { // First time executing the script!
			fsmCount = Fsm.FsmList.Count;
			fsmCurrentCount = fsmCount;
		}
		else if (fsmCurrentCount != fsmCount) {
			Fsm.SanityCheckFsmList();
			fsmCount = Fsm.FsmList.Count;
			fsmCurrentCount = fsmCount;
		}
	}
	
	// Update is called once per frame
	void Update () {
	
	}
}