Layer visibility overrides are stored as Xdata attached to the viewport. All other layer overrides are stored as dictionary data in layer extension dictionaries. To collect all layer override data for a single vp you need to check the vp and all layers. It is not difficult, but it is quite a palaver. I do have code for this but can't release it as open source. Sorry.
Maybe this will help you get started:
(defun c:Test
( / lyr ext rec
) )
)
(c:TEST) =>
(
(-1 . <Entity name: cc38d28>)
(0 . "XRECORD")
(5 . "D5")
(102 . "{ACAD_REACTORS")
(330 . <Entity name: 1a1d4978>)
(102 . "}")
(330 . <Entity name: 1a1d4978>)
(100 . "AcDbXrecord")
(280 . 1)
(102 . "{ADSK_LYR_LINEWT_OVERRIDE")
(335 . <Entity name: cc06d10>) ; Ename of viewport.
(91 . 18) ; Override value.
(102 . "}")
(102 . "{ADSK_LYR_LINEWT_OVERRIDE")
(335 . <Entity name: caa6d50>) ; Ename of viewport.
(91 . 211) ; Override value.
(102 . "}")
)
The names used for the Xrecords are:
ADSK_XREC_LAYER_COLOR_OVR
ADSK_XREC_LAYER_LINETYPE_OVR
ADSK_XREC_LAYER_LINEWT_OVR
ADSK_XREC_LAYER_ALPHA_OVR
ADSK_XREC_LAYER_PLOTSTYLE_OVR