• Sorry I've just forgotten to mention something...

    One of your steps is to clear the transaction log using BACKUP LOG ... WITH TRUNCATE_ONLY. That shouldn't be necessary as the committed transactions should be cleared once replication has be removed. If it doesn't then a straightforward backup of the log should clear it all out.

    By using the TRUNCATE_ONLY option you are breaking the backup chain which will only be initialised again with a full or differential backup. Therefore, after you've reinitialised replication your log file will continue to grow until a successful log backup can be taken (which will only be after one of the aforementioned backups have taken place).