The problem is likely not in aircrafts, but in the side actors such as smoke, debris and craters from bombs, which creates the game itself, and does not remove properly.
My variant of function:
Code:
private void DestroyAircrafts(IGamePlay game)
{
foreach (int army in game.gpArmies())
foreach (var group in game.gpAirGroups(army))
foreach (var item in group.GetItems())
((AiAircraft)item).Destroy();
}