For some reason after migrating public folders to Office365 the client permissions would not take affect for users despite it showing as set in the admin console. As there were only a few public folders, used mainly for shared address books, I didn't want to spend too much time troubleshooting the issue.
I decided to export the information in the public folders to my own shared mailbox, then delete the public folders and public folder hierarchy and then rectreate them in Office 365 alone. However, after doing this the primary PF mailbox was LockedForMigration.
The resolution was to run the following:
EXO
Get-Mailbox -PublicFolder $(Get-OrganizationConfig).RootPublicFoilderMailbox.HierarchyMailboxGuid.ToString() | Remove-Mailbox -PublicFolder -Confirm:$False -Force:$True
Set-OrganizationConfig -PublicFoldersEnabled:local
Set-OrganizationConfig -RemotePublicFolderMailboxes $null
Get-Mailbox -PublicFolder $(Get-OrganizationConfig).RootPublicFoilderMailbox.HierarchyMailboxGuid.ToString() | Remove-Mailbox -PublicFolder -Confirm:$False -Force:$True
Set-OrganizationConfig -PublicFoldersEnabled:local
Set-OrganizationConfig -RemotePublicFolderMailboxes $null
After this we could create a Public Folder mailbox under the O365 admin console. Newly created public folders had no issues with client permissions and I was able to import the old data from my own mailbox.
Graph and PowerShell Blog