Using Sync Orchestrator to Syncronize two SQL CE 3.5 Databases
I was able to solve the error by changing the provisioning.  Instead of calling the above code for each of the two databases, I created a single function as shown below:

    public void SetupScope() {
        if (ProvidersCollection["Local"] != null &amp;&amp; ProvidersCollection["Remote"] != null) {
            var localConnection = (SqlCeConnection)((SqlCeSyncProvider)ProvidersCollection["Local"]).Connection;
            var remoteConnection = (SqlCeConnection)((SqlCeSyncProvider)ProvidersCollection["Remote"]).Connection;

            var localScopeDescription = new DbSyncScopeDescription("LocalPerson");
            var localPersonTableDescription = SqlCeSyncDescriptionBuilder.GetDescriptionForTable("Person", remoteConnection);
            localScopeDescription.Tables.Add(localPersonTableDescription);

            var localDatabaseConfiguration = new SqlCeSyncScopeProvisioning(localConnection);
            try {
                localDatabaseConfiguration.PopulateFromScopeDescription(localScopeDescription);
                localDatabaseConfiguration.ObjectPrefix = "Sync";
                localDatabaseConfiguration.SetCreateTableDefault(DbSyncCreationOption.CreateOrUseExisting);
                localDatabaseConfiguration.Apply();
            } catch (Exception ex) {
                Console.WriteLine(string.Format("{0}", ex.Message));
            }

            var remoteScopeDescription = new DbSyncScopeDescription("RemotePerson");
            var remotePersonTableDescription = SqlCeSyncDescriptionBuilder.GetDescriptionForTable("Person", localConnection);
            remoteScopeDescription.Tables.Add(remotePersonTableDescription);

            var remoteDatabaseConfiguration = new SqlCeSyncScopeProvisioning(remoteConnection);
            try {
                remoteDatabaseConfiguration.PopulateFromScopeDescription(remoteScopeDescription);
                remoteDatabaseConfiguration.ObjectPrefix = "Sync";
                remoteDatabaseConfiguration.SetCreateTableDefault(DbSyncCreationOption.CreateOrUseExisting);
                remoteDatabaseConfiguration.Apply();
            } catch (Exception ex) {
                Console.WriteLine(string.Format("{0}", ex.Message));
            }
        }
    }


The difference here is that for each of the two databases, I now reference the connection of the other database when setting up my table descriptions.