Когда вы делаете «o.Acl» внутри foreach, вы выполняете запрос к серверу (он находится внутри метода получения свойства «Acl»), поэтому в каждой из 3 строк цикла вы выбираете acl с сервера и сбрасываетестарое значениеИтак, вы должны сделать что-то вроде этого:
var acl = o.Acl;
acl.CleanEntries();
acl.AddEntry(SharpGs.Acl.AclPermission.FULL_CONTROL, SharpGs.Acl.ScopeType.AllUsers);
acl.Save();