I was running into a problem giving a user access to another user's mailbox, where the user was only getting permission to view the top level folders, while the subfolders had no viewing permissions set on them.
Here's the way to set permissions on each folder recursively if all else fails.
In this example, we are giving Mike editor privileges on Kukuri's mailbox folders.
ForEach($f in (Get-MailboxFolderStatistics kukuri@company.com | Where { $_.FolderPath.Contains("/") -eq $True } ) ) {