Thanks, that's what I was missing.
I had to change my ItemID to be the file geodatabase I'd uploaded instead of the hosted feature layer, and add the filetype to the publish properties, but seems to have it.
fgdb.publish(overwrite=True,file_type='fileGeodatabase')
On an unrelated note, I've been struggling to use the Python API documentation. I'm used to the format from the JavaScript API, where each class has it's own page, and all the properties are listed in a nice clean table at the top that then links to the details of that function.
The python api documentation is one massive page and all the properties of a class, while listed, have all the details of the other properties before you get to them. So if you go on there and look at the Item class, you just have to keep scrolling until you find publish, and if you just search "Publish", you get over 60 results to try and weed through. All the info is there, just not nearly as easy to sift through.
And I can't seem to find anywhere in there that updating the source data requires you to republish the feature layer for the changes to show up, so I don' t know how I'm supposed to know that.