Hi hechang27,
a little update on this: the add-on I mentioned is out now as a first pre-beta – UTL Coupling Yard:
https://mods.factorio.com/mod/UTLCouplingYard
It handles exactly your use case:
A train leaves its wagons at a wagon yard stop and carries on (or picks up the wagons waiting there – e.g. empty ones).
A shunting locomotive (one locomotive facing each way) fetches the wagons, pushes them into your inner station (e.g. unloading tracks) and, once they are empty, brings them back to be picked up again.
Every coupling is announced to UTL, so deliveries and schedules survive it.
There is also a "relay" mode: the delivery stays with the wagons and the next train takes it on.
It uses the add-on API that is part of UTL since 0.0.20. You don't need a separate coupling mod for it – better not to use two coupling mods on the same stops.
How it works, step by step: https://github.com/Marcel1853/UTLCouplingYard/wiki
It is still an early test version, so things may change. If you try it, I'd be glad to hear how it works with your station design and what is missing.