I know it's an old post but I had the same issue and I think it's a good thing to share my solution with you.
I've built a function which does the job:
foreach($list in $arrayOfLists)
write-host "Enabling catalog on list " $list -foregroundcolor Yellow
#Break permission inheritance
#Enable anonymous to the catalog
$list.AllowEveryoneViewItems = $true
$list.AnonymousPermMask64 ="Open, OpenItems, ViewListItems, ViewVersions, ViewFormPages, ViewPages, UseClientIntegration"
$rootFolder = $list.RootFolder
$rootFolder.Properties.Add("IsPublishingCatalog", "True") #Activate catalog
write-host "Catalog successfully enabled on " $list -foregroundcolor Green
$lists = <an array of list objects>
As far as I've tested it, it works fine.