Does your pGxObjects represent a collection of shapefiles in a folder?
If so, I'd try opening the folder as a workspace make a List<IName> from IWorkspace.DatasetNames, and avoid using stuff in the Esri.Arcgis.Catalog altogether.
If you must use IGxCatalog, perhaps create a List<IName> from the pGxObjects, then call IGxCatalog.Close(), then loop through each name in the list.
I've always been suspicious of what IGxCatalog does behind the scenes - maybe for performance it's caching references(?)
Kirk, I think that may have worked (or at least well enough). I tested on a single folder with 15 shapefiles and all but one of the lock files went away. I don't know what that is all about, but I will have to try and figure that out later. I am just happy that I have made some progress. Now, I just have to go through my enormous application and make all of the necessary changes, which will not be fun.
Thank you.