I haven't found it necessary to do anything with those environment variables. The two programs I mainly use are PL/SQL Developer ( 32bit ) and JMP 9 ( 64 bit ).
For PLSQL Developer, I place a tnsnames.ora file in C:\Oracle11gR2_x32\product\11.2.0\client_1\NETWORK\ADMIN and then just run the program. It finds the database connection information there and allows me connect to the databases. It doesn't use DSN's set up with ODBC Administrator.
For JMP9 64bit, I place the same tnsnames.ora file in C:\Oracle11gR2_x64\product\11.2.0\client_1\NETWORK\ADMIN, then run the default ODBC Administrator, which of course is the 64bit one, and create datasources in there. JMP9 uses these DSN's and connects to the databases.
If I did need DSN's for a 32bit app, then I'd run C:\Windows\SysWOW64\odbcad32.exe and create them there and the 32bit app would see them. I did at one time have a 32bit version of JMP9 installed and this worked
So I don't seem to be relying on ORACLE_HOME or TNS_ADMIN environment variables.
In fact, I just looked on my system and I see that ORACLE_HOME is blank, it has no value, TNS_ADMIN is not present at all, and PATH has values for all the Oracle drivers I have installed, 32bit and 64bit.
Hope that helps