Hello, I noticed you didn't show what is the exact string value in your 'ConnectionAddress' variable for the 4395A case where you get the error. Are you certain your 4395A is set to the GPIB address that your 'ConnectionAddress' is specifying? I've never actually used a 4395A myself, but I would think it should be possible to put them into Local mode using code that's like what you have.
The 'ConnectionAddress' is a string. For the 4395A, it is set to 'GPIB0::16::INSTR'. The other test instruments that I tried it on that worked also had a similar gpib connection address string. (with a different GPIB number of course).
The 4395A seems to be different versus the other Agilent instruments in that it allows you to run HPBasic directly on the instrument itself. Also, the 4395A is odd in that it crashes on certain SCPI commands. (such as SYST:ERR?) So I believe it doesn't support full SCPI command set. Not sure if that is affecting the return to local via gpib operation.
I note you didn't say that you checked via the 4395A's softkey menu that it is set to address 16, although perhaps you were implying you had. Although the 4395A's default address would be 16, it's a possibility that someone could have changed it's address at some point.
I did check that its GPIB address was set to 16 since I can talk to the 4935A instrument thru the 'Interactive IO' window from the Agilent Connection Expert, and that was the VISA address shown by ACE when it scanned the GPIB bus. So the problem is not in talking to it, but rather getting it to return back to local mode from remote mode. And I have looked thru the programming manual from cover to cover. I thought the command 'KEY 48' would do the trick, but it didn't. I'll try the other possible suggested commands such as 'GTL' to see if it has any effect or not.