In many programming procedures entering programming mode will erase all previous codes for learned remotes.  This means that any existing remotes will stop working.  This is good because it is a great way to get rid of the programming for lost or stolen remotes.
During the programming procedure there will be a step that says something like "repeat the step above for each remote that you want to work on the vehicle including old remotes."  What some customers do is they don't repeat THE STEP above, they repeat ALL STEPS above.  This means that you are not going back to the previous step for each old remote.  You are repeating the whole procedure for each remote.  This is what causes the programming of one remote to knock out other remotes.
If you simply follow the procedure exactly the way it says to then it won't happen to you.