Continuación: archivo 
bin/class.selector.servicios.php
Lo invoco para que cambie los valores de cada combo. Es invocado en 
mods/cambio.servicios.php y en 
mods/combos.cambio.servicios.php   Código PHP:
    <?php
    class SelectorProgramaServicios {
        
        public $seleccion = 0;
        public $programa = 0;
        public $origen = 0;
        
        public $datos = array();
        public $bases = array();
        
        //SERVICIO BASE...
        public function ServicioBase($cn) {
            
            $origen = $this->origen;
            
            switch ($origen) {
                case 1:
                    $this->ProgramaServicio($cn);
                    break;
                default:
                    $this->Proveedor($cn);
                    $this->Ciudad($cn);
                    $this->TipoServicio($cn);
                    $this->CategoriaServicio($cn);
                    $this->Servicio($cn);
                    $this->Acomodaciones($cn);
                    break;
            }
            
            return $this->datos;
        }
        
        //SELECCION DE DATOS DEL SERVICIO...
        public function Selecciones($cn) {
            
            $seleccion = $this->seleccion;
            
            switch ($seleccion) {
                case 1:
                    $this->Ciudad($cn);
                    $this->TipoServicio($cn);
                    $this->CategoriaServicio($cn);
                    $this->Servicio($cn);
                    $this->Acomodaciones($cn);
                    break;
                case 2:
                    $this->TipoServicio($cn);
                    $this->CategoriaServicio($cn);
                    $this->Servicio($cn);
                    $this->Acomodaciones($cn);
                    break;
                case 3:
                    $this->CategoriaServicio($cn);
                    $this->Servicio($cn);
                    $this->Acomodaciones($cn);
                    break;
                case 4:
                    $this->Servicio($cn);
                    $this->Acomodaciones($cn);
                    break;
                case 5:
                    $this->Acomodaciones($cn);
                    break;
            }
            
            return $this->datos;
        }
        
        //PROVEEDOR...
        private function Proveedor($cn) {
            
            $datos = $this->datos;
            $origen = $this->origen;
            
            $llaves = array_keys($datos["Servicios"]);
            foreach ($llaves as $llave) {
                $PVSID = $llave;
            }
            
            switch ($origen) {
                case 1:
                    $limite = "AND s.tiposervicio NOT IN (2)";
                    break;
                default:
                    $limite = "";
                    break;
            }
            $bloques = array(
                0 => "SELECT DISTINCT p.id AS id",
                1 => "FROM proveedores p INNER JOIN servicios s ON (s.proveedor = p.id)",
                2 => "INNER JOIN tarifarios t ON (s.id = t.servicio) WHERE s.estado = 1 AND s.eliminado = 0",
                3 => "{$limite}",
                4 => "ORDER BY p.nombrecomercial LIMIT 1"
            );
            $sql = implode(" ", $bloques);
            $rs = mysql_query($sql, $cn);
            while ($ma = mysql_fetch_array($rs)) {
                $datos["Servicios"][$PVSID]["Proveedor"] = $ma["id"];
            }
            $ma = "";
            mysql_free_result($rs);
            
            $this->datos = $datos;
        }
        
        //CIUDAD...
        private function Ciudad($cn) {
            
            $datos = $this->datos;
            $origen = $this->origen;
            
            $llaves = array_keys($datos["Servicios"]);
            foreach ($llaves as $llave) {
                $PVSID = $llave;
            }
            
            switch ($origen) {
                case 1:
                    $limite = "AND s.tiposervicio NOT IN (2)";
                    break;
                default:
                    $limite = "";
                    break;
            }
            $bloques = array(
                0 => "SELECT DISTINCT c.id AS id",
                1 => "FROM ciudades c INNER JOIN servicios s ON (s.ciudad = c.id)",
                2 => "INNER JOIN tarifarios t ON (s.id = t.servicio) WHERE s.estado = 1",
                3 => "AND s.eliminado = 0 AND s.proveedor = {$datos["Servicios"][$PVSID]["Proveedor"]}",
                4 => "{$limite}",
                5 => "ORDER BY c.nombre LIMIT 1"
            );
            $sql = implode(" ", $bloques);
            $rs = mysql_query($sql, $cn);
            while ($ma = mysql_fetch_array($rs)) {
                $datos["Servicios"][$PVSID]["Ciudad"] = $ma["id"];
            }
            $ma = "";
            mysql_free_result($rs);
            
            $this->datos = $datos;
        }
        
        //TIPO DE SERVICIO...
        private function TipoServicio($cn) {
            
            $datos = $this->datos;
            $origen = $this->origen;
            
            $llaves = array_keys($datos["Servicios"]);
            foreach ($llaves as $llave) {
                $PVSID = $llave;
            }
            
            switch ($origen) {
                case 1:
                    $limite = "AND ts.id NOT IN (2)";
                    break;
                default:
                    $limite = "";
                    break;
            }
            $bloques = array(
                0 => "SELECT DISTINCT ts.id AS id",
                1 => "FROM tiposservicio ts INNER JOIN servicios s ON (s.tiposervicio = ts.id)",
                2 => "INNER JOIN tarifarios t ON (s.id = t.servicio) WHERE s.estado = 1 AND",
                3 => "s.eliminado = 0 AND s.proveedor = {$datos["Servicios"][$PVSID]["Proveedor"]} AND",
                4 => "s.ciudad = {$datos["Servicios"][$PVSID]["Ciudad"]}",
                5 => "{$limite}",
                6 => "ORDER BY ts.nombre LIMIT 1"
            );
            $sql = implode(" ", $bloques);
            $rs = mysql_query($sql, $cn);
            while ($ma = mysql_fetch_array($rs)) {
                $datos["Servicios"][$PVSID]["TipoServicio"] = $ma["id"];
            }
            $ma = "";
            mysql_free_result($rs);
            
            $this->datos = $datos;
        }
        
        //CATEGORIA DEL SERVICIO...
        private function CategoriaServicio($cn) {
            
            $datos = $this->datos;
            
            $llaves = array_keys($datos["Servicios"]);
            foreach ($llaves as $llave) {
                $PVSID = $llave;
            }
            
            $bloques = array(
                0 => "SELECT DISTINCT cs.id AS id FROM categoriasservicio cs",
                1 => "INNER JOIN servicios s ON (s.categoriaservicio = cs.id) INNER JOIN tarifarios t ON (s.id = t.servicio)",
                2 => "WHERE s.estado = 1 AND s.eliminado = 0 AND s.proveedor = {$datos["Servicios"][$PVSID]["Proveedor"]}",
                3 => "AND s.ciudad = {$datos["Servicios"][$PVSID]["Ciudad"]} AND s.tiposervicio = {$datos["Servicios"][$PVSID]["TipoServicio"]}",
                4 => "ORDER BY cs.id DESC LIMIT 1"
            );
            $sql = implode(" ", $bloques);
            $rs = mysql_query($sql, $cn);
            while ($ma = mysql_fetch_array($rs)) {
                $datos["Servicios"][$PVSID]["CategoriaServicio"] = $ma["id"];
            }
            $ma = "";
            mysql_free_result($rs);
            if ($datos["Servicios"][$PVSID]["CategoriaServicio"]) {
                //TODO OK...
            } else {
                $datos["Servicios"][$PVSID]["CategoriaServicio"] = 0;
            }
            $this->datos = $datos;
        }
        
        //SERVICIO...
        private function Servicio($cn) {
            
            $datos = $this->datos;
            
            $llaves = array_keys($datos["Servicios"]);
            foreach ($llaves as $llave) {
                $PVSID = $llave;
            }
            
            $bloques = array(
                0 => "SELECT DISTINCT s.id AS id, s.valorservicio AS valorservicio, s.precioobligatorio AS obligatorio",
                1 => "FROM servicios s INNER JOIN tarifarios t ON (s.id = t.servicio) WHERE s.estado = 1 AND",
                2 => "s.eliminado = 0 AND s.proveedor = {$datos["Servicios"][$PVSID]["Proveedor"]}",
                3 => "AND s.ciudad = {$datos["Servicios"][$PVSID]["Ciudad"]}",
                4 => "AND s.tiposervicio = {$datos["Servicios"][$PVSID]["TipoServicio"]}",
                5 => "AND s.categoriaservicio = {$datos["Servicios"][$PVSID]["CategoriaServicio"]}",
                5 => "ORDER BY s.descripcion LIMIT 1"
            );
            $sql = implode(" ", $bloques);
            $rs = mysql_query($sql, $cn);
            while ($ma = mysql_fetch_array($rs)) {
                $datos["Servicios"][$PVSID]["Servicio"] = $ma["id"];
                $datos["Servicios"][$PVSID]["ValorServicio"] = $ma["valorservicio"];
                $datos["Servicios"][$PVSID]["Obligatorio"] = $ma["obligatorio"];
            }
            $ma = "";
            mysql_free_result($rs);
            
            $this->datos = $datos;
        }
        
        //HABITACION / ACOMODACION...
        private function Acomodaciones($cn) {
            
            $datos = $this->datos;
            
            $llaves = array_keys($datos["Servicios"]);
            foreach ($llaves as $llave) {
                $PVSID = $llave;
            }
            
            $bloques = array(
                0 => "SELECT DISTINCT ac.id AS id FROM acomodaciones ac INNER JOIN tarifarios t",
                1 => "ON (t.acomodacion = ac.id) INNER JOIN servicios s ON (t.servicio = s.id) WHERE s.estado = 1 AND s.eliminado = 0",
                2 => "AND s.proveedor = {$datos["Servicios"][$PVSID]["Proveedor"]} AND s.ciudad = {$datos["Servicios"][$PVSID]["Ciudad"]}",
                3 => "AND s.tiposervicio = {$datos["Servicios"][$PVSID]["TipoServicio"]} AND s.categoriaservicio = {$datos["Servicios"][$PVSID]["CategoriaServicio"]}",
                4 => "AND s.id = {$datos["Servicios"][$PVSID]["Servicio"]} ORDER BY ac.nombre LIMIT 1"
            );
            $sql = implode(" ", $bloques);
            $rs = mysql_query($sql, $cn);
            while ($ma = mysql_fetch_array($rs)) {
                $datos["Servicios"][$PVSID]["Acomodacion"] = $ma["id"];
            }
            $ma = "";
            mysql_free_result($rs);
            
            $this->datos = $datos;
        }
    }
?>    
  Bueno, después de haber publicado todos los archivos necesarios, el punto es que al llamar a la funcion 
$("#lb_proveedor").change() en JQuery, lo hace bien, pero solo lo hace una vez, lo mismo para con 
$("#lb_ciudad").change(), basta que se invoque a cualquiera de los dos, ya no vuelve a ejecutarse el 
$.post. Todo eso es desde 
servicios.php. El resultado del JQuery se imprime en un div de nombre 
"frm_servicios". 
No completé el resto de los eventos para cada combo, ya que si funciona una sola vez, es que hay algo que está mal. Agradesco toda respuesta de antemano a mi consulta...  

 Saludos...