Hola
En la función _OpeningFcn(.....) escribes lo siguiente:
handles=guidata(gcbo);
Esta instrucción recupera toda la información de la estructura 'handles' del GUI principal, el inconveniente es que sobreescribe la estructura 'handles' del nuevo GUI. Por esta razón, cuando necesites usar el identifcador de un control de ese nuevo GUI, tienes que usar la siguiente instrucción:
[h fig]=gcbo;
Esta instrucción recupera en la variable 'h', el identificador del control que se está ejecutando, por ejemplo, el identificador de un button, edit text, etc. y en la variable 'fig' el identificador de la ventana, que es el que contiene todos los controles.
Por otra parte, 'varargin' y 'varargout' son funciones que se usan para referirse a los argumentos de entrada y salida de longitud variable de una función, es decir, al usar estas funciones se puede aceptar un número variable de argumentos tanto de entrada como de salida, y dependiendo de ese número, que se puede conocer usando la función 'nargin' o nargout', se define el comportamiento de la función, de esta manera se evita escribir, por ejemplo,
function [a b c d e] = calcular(t, u, v,w, x, y, z)
Saludos!