FYI, if you think about this while creating your custom table, instead of catching it after the fact, while going through Web Screen Painter "Add Column" persistent_id and it'll create the field in SQL to store the value and work as you would expect. Just make sure the string length is large enough for the table name, the colon and 6 digits.
Ex.
I created a table called zClinical_Service_Lines, and created the persistent_id field as a string 30 field.
After publication, instead of the persistent_id field showing up in the Schema designer as "N/A: Exists only in Object Engine" it displays as you would have hoped. And when I add entries to it, the values are stored like this:
zClinical_Service_Lines:400003
Any smaller than 30 characters and that wouldn't have fit. So may be wise to go larger to be safe.