Figured part of the first issue. I had to invalidate PageTab after paint and set its style in ctor:
Code:
SetStyle( ControlStyles.AllPaintingInWmPaint, true );
If true, the control ignores the window message WM_ERASEBKGND to reduce flicker. Now when i open a new tab it shows correctly, but if i change to another tab it still goes blank.