Check this out for a GUI-ish sample:
http://www.hiveworkshop.com/forums/spells-569/hero-selection-window-v1-0-a-226393/
Or this:
http://www.hiveworkshop.com/forums/spells-569/ultimate-gui-hero-pick-system-2-3-a-192082/
The menus are just destructables that have a replaceable texture. You'll usually have one for blank icons. If you want to put an icon there, then you just hide the blank icon and create a new destructable that is using the icon you want. Some systems use trackables (available to vJASS), but others use units for selection handling.
The model of the hero is done by making a unit with locust that shares the model of your hero, and then you just set the roll to an angle so that it is facing upward (see any of those maps I linked to see how it is done). Then you can attach stuff to it.
TKoK may do things slightly differently since it was coded in vJASS, but the overall process is pretty much the same. You just have to be careful for desyncs. Those "visual" systems (full-screen user interfaces) are prone to desyncs, since you usually have to change how things look
just for the player who is viewing it. This is perfectly doable if you understand how GetLocalPlayer() works, but they are overall pretty complicated to make.