Fixed!
I compated the database table structure (perch2_pages) to another Perch Runway site and there were a few differences:
- No Primary field assigned
- No index on parentPageID
- No auto increment on pageID
I've no idea how these differences occured, but after manually updating the broken table everything's working OK again.