I think you are mistaken.
If you create ParentFolderName explicitly, like you showed (using imap.CreateFolder("ParentFolderName") call) the folder is selectable:
const string parentName = "ParentFolderName";
imap.CreateFolder(parentName);
imap.CreateFolder(parentName + "/Child1");
FolderInfo parent = imap.GetFolders().Find(x => x.Name == parentName);
Assert.AreEqual(true, parent.CanSelect);
imap.Select(parent);
If however the folder is created implicitly (as a side effect of creating child folder) it isn't selectable:
const string parentName = "ParentFolderName";
//imap.CreateFolder(parentName); // don't create parent
imap.CreateFolder(parentName + "/Child1"); // creates parent implicitly
FolderInfo parent = imap.GetFolders().Find(x => x.Name == parentName);
Assert.AreEqual(false, parent.CanSelect);