In my example, I have two Oracle software installations on the host
cd /tmp
# first perform a trial run
/u01/oracle/product/11203/deinstall/deinstall -checkonly
# do the actual deinstall
/u01/oracle/product/11203/deinstall/deinstall
I have found that when you have a listener running on the host out of a different ORACLE_HOME, the deinstall script will often (but not always) want to deconfigure it, despite the fact that it runs out of a different ORACLE_HOME. So for a brief period, the host may be without a valid listener process. However, this was never a problem , simply change directory to the working /u01/oracle/product/11204/network/admin folder and restart the listener.
Sometimes (but not always) you may have to manually remove the deinstall folder under the ORACLE_HOME home you just deinstalled.