About the gpio, have you seen the gpio application note for rtl9607c? From my understanding, it is a clear indicatation that ports are reversed so GPIO_PORTS_REVERSED should be set. There is also GPIO_ITERRUPTS_PER_CPU which I believe?? is what IER registers are for, but somehow need to be unset for bank 1 and bank 2. Another thing worth mentioning is IO_GPIO_EN register. You can see the it being used in the dal_rtl9607c_state_set function. I am not that knowledged with pinctrl and pinmux, but is what its for? Since you mentioned led, there is IO_LED_EN register for that too.
Also, have you seen this gpio driver from GPL archive? It utilizes a lot of gpio functions from the aforementioned realtek SDK but maybe that could still help you.