Please use tracing in WCF to rack your problem.
From your description is very hard to understand what happened under the hood.
As an issue i suppose it could be some memory leak problem.
So include tracing in your WCF , and look throuht it!.
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchvalue="Information, Critical, Error">
propagateActivity="true">
<listeners>
<add name="log" />
</listeners>
</source>
<source name="System.ServiceModel.MessageLoging" switchvalue="Critical">
<listeners>
<add name="log" />
</listeners>
</source>
</sources>
<sharedlisteners>
<add name="log" type="System.Diagnostics.XmlWriterTraceListener">
initializeData="Traces.svclog" />
</add></sharedlisteners>
<trace autoflush="true" />
</system.diagnostics>
And one more, for what purpose you set maxConcurrentInstances ?? As i suppose , it should be only one...