It was a simple answer I should have thought of a while ago. The solution was I pre-generated the 25 geometries (5x5 chunks) and set an ID to them. When the player moved between chunks, the geometry vertices would reset, and add it to a list of geometries that have been untaken. When it was time for the new chunk to be loaded in, a function would spit out the ID to an untaken geometry