Maintaining a single collection subdivided by a value's property
What you suggested is absolutely fine. There isn't any unnecessary copying. Although, to make things simpler, I suggest using LINQ extension methods for filtering.

using System.Linq;

public IEnumerable&lt;Actor&gt; ReplicatedActors
{
    get { return allActors.Where(actor =&gt; actor.Replicates); }
}

public IEnumerable&lt;Actor&gt; LocalActors
{
    get { return allActors.Where(actor =&gt; !actor.Replicates); }
}


You'll still have to remove actors from allActors, these two are separate read-only lists of actors derived from the list of all actors.

Edit: I also suggest changing your actor removal loop to be a foreach loop for simplicity.

foreach (var actor in actorsToRemove)
{
    allActors.Remove(actor);
}
actorsToRemove.Clear();