I would also recommend saving to a path outside of where you are using the 'os.walk' function. Once the new MXD is saved, the script will try and update the paths of that MXD, and even though paths do not need to be updated, it will error due to a lock on the MXD from the current script.