Let $ABCD$ be a parallelogram, $AC$ intersects $BD$ at $I$. Consider point $G$ inside $\triangle ABC$ that satisfy $\angle IAG=\angle IBG\neq 45^{\circ}-\frac{\angle AIB}{4}$. Let $E,G$ be projections of $C$ on $AG$ and $D$ on $BG$. The $E-$ median line of $\triangle BEF$ and $F-$ median line of $\triangle AEF$ intersects at $H$.
$a)$ Prove that $AF,BE$ and $IH$ concurrent. Call the concurrent point $L$.
$b)$ Let $K$ be the intersection of $CE$ and $DF$. Let $J$ circumcenter of $(LAB)$ and $M,N$ are respectively be circumcenters of $(EIJ)$ and $(FIJ)$. Prove that $EM,FN$ and the line go through circumcenters of $(GAB),(KCD)$ are concurrent.
Let $T = \overline{AF} \cap \overline{BE}$. Note that $\triangle IFB \sim \triangle IAE$ since they are isosceles triangles with equal angles, so $I$ is the center of a spiral mapping $FB \mapsto AE$. Therefore, $I$ is the Miquel Point of quadrilateral formed by lines $\{\overline{AF}, \overline{BE}, \overline{AE}, \overline{BF}\ \} \equiv \{\overline{AT}, \overline{BT}, \overline{AG}, \overline{BG}\}$. Simple angle chasing yield
$$\measuredangle AIG = \measuredangle AFG = \measuredangle TFB = \measuredangle TIB,$$which means $IG$ and $IT$ are isogonal w.r.t. $\angle AIB$. We just need to prove that $IH$ and $IG$ are isogonal w.r.t. $\angle AIB$ as well.
Let $X, Y$ be the midpoints of $AE, BF$ respectively. Observe that $\measuredangle FIA = \measuredangle BIE$ and $\measuredangle YIA = \measuredangle YIB + \measuredangle BIA = \measuredangle AIX + \measuredangle BIA = \measuredangle BIX$. Therefore, $(IY, IX)$, $(IE, IF)$ are pairs of isogonal lines w.r.t. $\angle AIB$. Since $G = \overline{FY} \cap \overline{EX}$ and $H = \overline{FX} \cap \overline{EY}$, therefore isogonal line lemma gives us $IH, IG$ are isogonal w.r.t. $\angle AIB$ as well. So, $I, H, T$ are collinear, i.e. $AF, BE, IH$ are concurrent at $T$.
This is very likely an overcomplicated solution.
[asy][asy]
/* Geogebra to Asymptote conversion, documentation at artofproblemsolving.com/Wiki go to User:Azjps/geogebra */
import graph; size(13cm);
real labelscalefactor = 0.5; /* changes label-to-point distance */
pen dps = linewidth(0.7) + fontsize(10); defaultpen(dps); /* default pen style */
pen dotstyle = black; /* point style */
real xmin = -11.088295012356383, xmax = 9.796562942728677, ymin = -4.743856256782594, ymax = 9.431223905669562; /* image dimensions */
pen qqwuqq = rgb(0,0.39215686274509803,0); pen zzttqq = rgb(0.6,0.2,0);
draw(arc((-3.506883887168504,-0.4968923456279747),0.5396604122760997,26.628879244261324,49.87648153121901)--(-3.506883887168504,-0.4968923456279747)--cycle, linewidth(1) + qqwuqq);
draw(arc((-1.5598261415980756,3.3644329754631155),0.5396604122760997,-57.18117816990282,-33.933575882945135)--(-1.5598261415980756,3.3644329754631155)--cycle, linewidth(1) + qqwuqq);
draw((-1.5598261415980756,3.3644329754631155)--(-3.506883887168504,-0.4968923456279747)--(3.3542318436358767,0.058141403164888514)--(5.3012895892063066,3.9194667242559786)--cycle, linewidth(1) + zzttqq);
draw((0.897202851018901,1.7112871893140018)--(-1.5598261415980756,3.3644329754631155)--(2.327413857645822,6.425789637350056)--cycle, linewidth(1) + zzttqq);
draw((0.897202851018901,1.7112871893140018)--(1.3896048245057522,-1.2088879351141917)--(-3.506883887168504,-0.4968923456279747)--cycle, linewidth(1) + zzttqq);
draw(arc((0.897202851018901,1.7112871893140018),0.5396604122760997,146.06642411705488,172.9971277552542)--(0.897202851018901,1.7112871893140018)--cycle, linewidth(1) + qqwuqq);
draw(arc((0.897202851018901,1.7112871893140018),0.5396604122760997,179.698175606062,206.62887924426136)--(0.897202851018901,1.7112871893140018)--cycle, linewidth(1) + qqwuqq);
draw(arc((2.327413857645822,6.425789637350056),0.5396604122760997,-158.58250258427807,-148.70945864720053)--(2.327413857645822,6.425789637350056)--cycle, linewidth(1) + qqwuqq);
draw(arc((2.327413857645822,6.425789637350056),0.5396604122760997,-106.87591618182331,-97.0028722447458)--(2.327413857645822,6.425789637350056)--cycle, linewidth(1) + qqwuqq);
draw(arc((1.3896048245057522,-1.2088879351141917),0.5396604122760997,82.9971277552542,99.57121954313949)--(1.3896048245057522,-1.2088879351141917)--cycle, linewidth(1) + qqwuqq);
draw(arc((1.3896048245057522,-1.2088879351141917),0.5396604122760997,148.21323339917905,164.78732518706437)--(1.3896048245057522,-1.2088879351141917)--cycle, linewidth(1) + qqwuqq);
/* draw figures */
draw((-1.5598261415980756,3.3644329754631155)--(-3.506883887168504,-0.4968923456279747), linewidth(1) + zzttqq);
draw((-3.506883887168504,-0.4968923456279747)--(3.3542318436358767,0.058141403164888514), linewidth(1) + zzttqq);
draw((3.3542318436358767,0.058141403164888514)--(5.3012895892063066,3.9194667242559786), linewidth(1) + zzttqq);
draw((5.3012895892063066,3.9194667242559786)--(-1.5598261415980756,3.3644329754631155), linewidth(1) + zzttqq);
draw(circle((-1.373194935247362,4.974233067675996), 3.9751128176445856), linewidth(1) + linetype("4 4"));
draw(circle((-2.018849341899371,-0.2820217175053743), 3.5322288699670805), linewidth(1) + linetype("4 4"));
draw((0.897202851018901,1.7112871893140018)--(-1.5598261415980756,3.3644329754631155), linewidth(1) + zzttqq);
draw((-0.3169380053153294,2.398101188329461)--(-0.1964358485055052,2.577200512439469), linewidth(1) + zzttqq);
draw((-0.3915627236944996,2.448310420333555)--(-0.2710605668846754,2.627409744443563), linewidth(1) + zzttqq);
draw((-0.46618744207366986,2.4985196523376487)--(-0.3456852852638456,2.6776189764476563), linewidth(1) + zzttqq);
draw((-1.5598261415980756,3.3644329754631155)--(2.327413857645822,6.425789637350056), linewidth(1) + zzttqq);
draw((0.2816847042543456,4.952080675654399)--(0.41524157985131055,4.7824932389933705), linewidth(1) + zzttqq);
draw((0.35234613619643906,5.0077293738198)--(0.485903011793404,4.838141937158773), linewidth(1) + zzttqq);
draw((2.327413857645822,6.425789637350056)--(0.897202851018901,1.7112871893140018), linewidth(1) + zzttqq);
draw((1.7155924165447687,4.037205732054738)--(1.5090242921199568,4.09987109460932), linewidth(1) + zzttqq);
draw((0.897202851018901,1.7112871893140018)--(1.3896048245057522,-1.2088879351141917), linewidth(1) + zzttqq);
draw((1.234878271970685,0.3578372277902447)--(1.0220190046850761,0.3219447491475743), linewidth(1) + zzttqq);
draw((1.2498334714051307,0.269145866421241)--(1.0369742041195216,0.2332533877785706), linewidth(1) + zzttqq);
draw((1.2647886708395761,0.18045450505223729)--(1.0519294035539672,0.14456202640956486), linewidth(1) + zzttqq);
draw((1.3896048245057522,-1.2088879351141917)--(-3.506883887168504,-0.4968923456279747), linewidth(1) + zzttqq);
draw((-1.029666867312163,-0.9661702050587985)--(-0.9986048523713796,-0.7525525819086955), linewidth(1) + zzttqq);
draw((-1.118674210291375,-0.9532276988334704)--(-1.0876121953505915,-0.7396100756833673), linewidth(1) + zzttqq);
draw((-3.506883887168504,-0.4968923456279747)--(0.897202851018901,1.7112871893140018), linewidth(1) + zzttqq);
draw((-1.3532167263760861,0.7036809794759644)--(-1.2564643097735155,0.5107138642100626), linewidth(1) + zzttqq);
draw((1.3896048245057522,-1.2088879351141917)--(3.3542318436358767,0.058141403164888514), linewidth(1));
draw((-9.551447674723665,1.7663294072729605)--(2.327413857645822,6.425789637350056), linewidth(1));
draw((-9.551447674723665,1.7663294072729605)--(1.3896048245057522,-1.2088879351141917), linewidth(1));
draw((-1.5598261415980756,3.3644329754631155)--(-0.99315697738263,2.4857685931231925), linewidth(1));
draw((-4.365792598677852,2.3577695885055636)--(0.897202851018901,1.7112871893140018), linewidth(1));
draw((7.05273475071495,2.443383815770267)--(3.3542318436358767,0.058141403164888514), linewidth(1));
draw((2.327413857645822,6.425789637350056)--(7.05273475071495,2.443383815770267), linewidth(1));
draw((2.327413857645822,6.425789637350056)--(3.3542318436358767,0.058141403164888514), linewidth(1));
draw((0.897202851018901,1.7112871893140018)--(3.3542318436358767,0.058141403164888514), linewidth(1));
draw((2.1113437073531305,1.0244731902985433)--(1.9908415505433061,0.8453738661885356), linewidth(1));
draw((2.1859684257323004,0.9742639582944495)--(2.0654662689224765,0.7951646341844417), linewidth(1));
draw((2.260593144111471,0.9240547262903556)--(2.1400909873016465,0.7449554021803478), linewidth(1));
draw((0.897202851018901,1.7112871893140018)--(5.3012895892063066,3.9194667242559786), linewidth(1));
draw((3.0508700118113166,2.911860514417942)--(3.147622428413887,2.71889339915204), linewidth(1));
draw((-3.506883887168504,-0.4968923456279747)--(-0.99315697738263,2.4857685931231925), linewidth(1));
draw((1.3896048245057522,-1.2088879351141917)--(5.3012895892063066,3.9194667242559786), linewidth(1));
draw((-6.0021315233938,-0.13405983108903194)--(-1.5598261415980756,3.3644329754631155), linewidth(1));
draw((-3.506883887168504,-0.4968923456279747)--(-6.0021315233938,-0.13405983108903194), linewidth(1));
draw(arc((0.897202851018901,1.7112871893140018),0.5396604122760997,146.06642411705488,172.9971277552542), linewidth(1) + qqwuqq);
draw(arc((0.897202851018901,1.7112871893140018),0.4227339896162781,146.06642411705488,172.9971277552542), linewidth(1) + qqwuqq);
draw(arc((0.897202851018901,1.7112871893140018),0.5396604122760997,179.698175606062,206.62887924426136), linewidth(1) + qqwuqq);
draw(arc((0.897202851018901,1.7112871893140018),0.4227339896162781,179.698175606062,206.62887924426136), linewidth(1) + qqwuqq);
draw((-3.125743013029888,1.7324795779904645)--(0.897202851018901,1.7112871893140018), linewidth(1));
draw(arc((2.327413857645822,6.425789637350056),0.5396604122760997,-158.58250258427807,-148.70945864720053), linewidth(1) + qqwuqq);
draw(arc((2.327413857645822,6.425789637350056),0.4227339896162781,-158.58250258427807,-148.70945864720053), linewidth(1) + qqwuqq);
draw(arc((2.327413857645822,6.425789637350056),0.3058075669564565,-158.58250258427807,-148.70945864720053), linewidth(1) + qqwuqq);
draw(arc((2.327413857645822,6.425789637350056),0.5396604122760997,-106.87591618182331,-97.0028722447458), linewidth(1) + qqwuqq);
draw(arc((2.327413857645822,6.425789637350056),0.4227339896162781,-106.87591618182331,-97.0028722447458), linewidth(1) + qqwuqq);
draw(arc((2.327413857645822,6.425789637350056),0.3058075669564565,-106.87591618182331,-97.0028722447458), linewidth(1) + qqwuqq);
draw((2.327413857645822,6.425789637350056)--(1.3896048245057522,-1.2088879351141917), linewidth(1));
draw((1.8420606131713364,2.4745422091770526)--(1.6978189707467297,2.6281893246032735), linewidth(1));
draw((1.8420606131713364,2.4745422091770526)--(2.019199711404843,2.5887123776325915), linewidth(1));
draw((-4.365792598677852,2.3577695885055636)--(2.327413857645822,6.425789637350056), linewidth(1));
draw((-4.365792598677852,2.3577695885055636)--(1.3896048245057522,-1.2088879351141917), linewidth(1));
draw(arc((1.3896048245057522,-1.2088879351141917),0.5396604122760997,82.9971277552542,99.57121954313949), linewidth(1) + qqwuqq);
draw((1.3790222003105266,-0.7368036738242372)--(1.3759985933976062,-0.6019224563128204), linewidth(1) + qqwuqq);
draw(arc((1.3896048245057522,-1.2088879351141917),0.5396604122760997,148.21323339917905,164.78732518706437), linewidth(1) + qqwuqq);
draw((0.9565655160766249,-1.0205995949341304)--(0.8328399993825877,-0.9668029263112575), linewidth(1) + qqwuqq);
draw((-5.073803728140546,3.5226764980019367)--(-5.427303508304495,0.6448445001034433), linewidth(1));
draw((-5.267002346126971,1.9498518571118095)--(-5.411243988551577,2.10349897253803), linewidth(1));
draw((-5.267002346126971,1.9498518571118095)--(-5.089863247893463,2.0640220255673487), linewidth(1));
draw((-0.99315697738263,2.4857685931231925)--(1.3896048245057522,-1.2088879351141917), linewidth(1));
draw((-0.99315697738263,2.4857685931231925)--(2.327413857645822,6.425789637350056), linewidth(1));
/* dots and labels */
dot((-1.5598261415980756,3.3644329754631155),dotstyle);
label("$A$", (-1.5902717562970277,3.6388688139061176), NE * labelscalefactor);
dot((-3.506883887168504,-0.4968923456279747),dotstyle);
label("$B$", (-3.5690266013093934,-0.9662333708499129), NE * labelscalefactor);
dot((3.3542318436358767,0.058141403164888514),dotstyle);
label("$C$", (3.446558758279903,-0.3186408761185961), NE * labelscalefactor);
dot((5.3012895892063066,3.9194667242559786),linewidth(4pt) + dotstyle);
label("$D$", (5.443302283701472,4.034619782908589), NE * labelscalefactor);
dot((0.897202851018901,1.7112871893140018),linewidth(4pt) + dotstyle);
label("$I$", (0.9641208618098442,1.8579894533949963), NE * labelscalefactor);
dot((-0.99315697738263,2.4857685931231925),linewidth(4pt) + dotstyle);
label("$G$", (-0.8347471791104881,2.3256951440342806), NE * labelscalefactor);
dot((1.3896048245057522,-1.2088879351141917),linewidth(4pt) + dotstyle);
label("$E$", (1.5757359957227572,-1.5238824635352135), NE * labelscalefactor);
dot((2.327413857645822,6.425789637350056),linewidth(4pt) + dotstyle);
label("$F$", (2.45718133577372,6.571023720606246), NE * labelscalefactor);
dot((7.05273475071495,2.443383815770267),linewidth(4pt) + dotstyle);
label("$K$", (7.278147685440211,2.3796611852618903), NE * labelscalefactor);
dot((-3.125743013029888,1.7324795779904645),linewidth(4pt) + dotstyle);
label("$O$", (-3.047354869442497,1.8759781338041996), NE * labelscalefactor);
dot((-6.0021315233938,-0.13405983108903194),linewidth(4pt) + dotstyle);
label("$L$", (-6.1773852606438755,-0.5345050410290351), NE * labelscalefactor);
dot((-4.365792598677852,2.3577695885055636),linewidth(4pt) + dotstyle);
label("$J$", (-4.288573817677526,2.5055819481263133), NE * labelscalefactor);
dot((-2.018849341899371,-0.2820217175053743),linewidth(4pt) + dotstyle);
label("$M$", (-2.0220000861179077,-0.13875407202656367), NE * labelscalefactor);
dot((-1.373194935247362,4.974233067675996),linewidth(4pt) + dotstyle);
label("$N$", (-1.3024528697497746,5.113940607460783), NE * labelscalefactor);
dot((-5.427303508304495,0.6448445001034433),linewidth(4pt) + dotstyle);
label("$E_1$", (-5.3499059618205225,0.7966573092520051), NE * labelscalefactor);
dot((-5.073803728140546,3.5226764980019367),linewidth(4pt) + dotstyle);
label("$F_1$", (-5.098064436091676,3.9266877004533693), NE * labelscalefactor);
dot((-9.551447674723665,1.7663294072729605),linewidth(4pt) + dotstyle);
label("$P$", (-9.487302455937288,1.911955494622606), NE * labelscalefactor);
clip((xmin,ymin)--(xmin,ymax)--(xmax,ymax)--(xmax,ymin)--cycle);
/* end of picture */
[/asy][/asy]
Claim 01 $I$ is the midpoint of the segment connecting the circumcenters of $\odot(GAB), \odot(KCD)$.
Proof. Let $G'$ be the reflection of $G$ w.r.t. $I$. $I$ is the spiral mapping $EC \mapsto DF$, so $I$ is also the Miquel Point of quadrilateral formed by $\{KD, DE, KC, CF\}$. Then, angle chasing gives us
\[ \measuredangle AGB = \measuredangle EGB = \measuredangle EIB = \measuredangle EID = \measuredangle EKD = \measuredangle CKD.\]This means $\measuredangle CKD = \measuredangle AGB = \measuredangle CG'D \implies \triangle CKD$ and $\triangle CG'D$ share the same circumcircle. Therefore, the circumcenters of $\triangle GAB$ and $\triangle KCD$ are symmetrical w.r.t. $I$. $\blacksquare$
Let $O$ be the circumcenter of $\triangle AGB$. We will prove $FN, IO,$ and $EM$ are concurrent. Let $P = \overline{FN} \cap \overline{EM}$. We will prove that $P, O, I$ are collinear.
Claim 02 $JI \perp EF$.
Proof. We use complex numbers with $I$ as the origin and lowercase complex variables correspond to the point labeled by its uppercase. Therefore, $i = 0$. We pick $a, b$ as arbitrary complex numbers, and
\[ f = \frac{b}{r}, e = ar, \]where $r$ is a unitary complex number which rotates $F \mapsto B$ and $A \mapsto E$ with center $I$. It's easy to get $j = (ar^2-b)/(r^2-1)$ (by noting that $(a-j)\cdot r^2 = (b-j)$), and it's easy to check that both $(e-f)/(\overline{e}-\overline{f})$ and $-j/\overline{j}$ both evaluates to $(ar^2-b)/(\overline{a}-\overline{b}r^2)$. Therefore, $EF \perp IJ$. $\blacksquare$.
Claim 03 $IJ, IO$ are isogonal w.r.t $\angle AIB$.
Proof. Let $A_1$ be the projection of $A$ to $IF$, $B_1$ be the projection of $B$ to $IE$, and $X = \overline{AA_1} \cap \overline{BB_1}$. First, we see that
\[ \frac{IA_1}{IB_1} = \frac{IA}{IB} = \frac{IE}{IF}, \]so $F, E, A_1, B_1$ are concyclic. Therefore,
\[ \measuredangle IXB_1 = \measuredangle IA_1B_1 = \measuredangle FEI, \]which gives us $IX \perp EF$. By claim 2, we conclude that $I, J, X$ are collinear.
Applying Jacobi Theorem to $\triangle ABI$, we obtain $IO, AB_1, BA_1$ are concurrent at a point $Y$. But by isogonal line lemma, since $(IA, IB)$ and $(IA_1, IB_1)$ are pairs of isogonal lines w.r.t. $\angle AIB$, and $X = AA_1 \cap BB_1$, $Y = AB_1 \cap BA_1$, therefore $(IX, IY)$ are also a pair of isogonal lines w.r.t. $\angle AIB$. So, $IJ, IO$ are isogonal w.r.t. $\angle AIB$. $\blacksquare$
Claim 04 $I, J$ are isogonal conjugates w.r.t. $\triangle PFE$
Proof. By claim 2, $FE$ is an altitude of $\triangle FIJ$ erected from $F$. Therefore, by the isogonality of altitude and cevian containing circumcenter, $\measuredangle EFI = \measuredangle JFN = \measuredangle JFP \implies$ $FJ, FI$ are isogonal w.r.t. $\angle EFP$. Similarly, $EJ, EI$ are isogonal w.r.t. $\angle FEP$. Therefore, the claim holds. $\blacksquare$
Let $EE_1$ and $FF_1$ be the diameter of $\odot(EJI)$ and $\odot(FJI)$ respectively. Since $EF$ and $MN$ are both perpendicular to $IJ$, therefore $E_1F_1$ is also perpendicular to $IJ$.
Claim 05 $\triangle PF_1J \sim \triangle PIE$.
Proof. We know that $EF \parallel MN \parallel E_1F_1$. The angle bisector of $\angle PMJ$ and $\angle PNJ$ meet at $PJ$ since
\[ \frac{AN}{NJ} = \frac{AN}{NF_1} = \frac{AM}{ME_1} = \frac{AM}{MJ}. \]But these two lines are the perpendicular bisectors of $JF_1$ and $JE_1$, respectively. Therefore, their meeting point is also the circumcenter of $\triangle JF_1E_1$, and this point lies on $JP$. Since $JI \perp E_1F_1$, this means $JP, JI$ are isogonal w.r.t. $\angle F_1JE_1$. Therefore,
\[ \measuredangle F_1JP = \measuredangle IJE_1 = \measuredangle IEE_1 = \measuredangle IEP. \]Combining this with $\measuredangle F_1PJ = \measuredangle IPE$, we obtain the desired triangle similarity result by A.A. $\blacksquare$
Now, we are ready to prove $P, O, I$ are collinear. It's equivalent with proving $\measuredangle(PI, IE) = \measuredangle(OI, IE)$ by angle chasing as follows:
\begin{align*}
\measuredangle PIE \stackrel{\text{Claim 05}}{=} \measuredangle PF_1J &= \measuredangle FF_1J \\
&= \measuredangle FIJ \\
&= \measuredangle OIE,
\end{align*}where the last equality is because $(IJ, IO)$ and $(IF, IE)$ are pairs of isogonal lines w.r.t. $\angle AIB$. $\square$
a) Let $P$ be isogonal conjugate of $G$ WRT $\triangle IAB;$ $IG$ intersects $(ABG)$ at $L$. Since $(AI, AG) \equiv (BG, BI) \equiv (FI, FB) \pmod \pi,$ we have $A, G, I, F$ lie on a circle. Similarly, we have $B, E, I, G$ lie on a circle. Then $$(BL, BA) \equiv (PL, PA) \equiv (PI, PA) \equiv (BI, BA) + (GA, GI) \equiv (BI, BA) + (GE, GI) \equiv (BI, BA) + (BE, BI) \equiv (BE, BA) \pmod \pi$$or $L, B, E$ are collinear. Similarly, we have $L, A, F$ are collinear. We also have $$(FI, FB) \equiv (BF, BI) \equiv (AI, AE) \equiv (EA, EI) \equiv - (EI, EA) \pmod \pi$$Hence $\triangle FUI$ $\stackrel{-}{\sim}$ $\triangle EVI$. So $(IU, IF) \equiv - (IV, IE) \pmod \pi,$ which means $IE, IF$ are isogonal conjugate in $\angle{UIV}$. Therefore, $IH, IG$ are isogonal conjugate in $\angle{UIV},$ hence $IH, IG$ are isogonal conjugate in $\angle{AIB}$. Then $L, I, H, P$ are collinear.
b) First, we prove the following lemma
Lemma. Given $\triangle ABC$ inscribed in circle $(O)$. Let $Q$ be a point such as $QB = QC$ and $P$ be isogonal conjugate of $Q$ WRT $\triangle ABC$. Suppose that $BP, CP$ intersect $(CAP), (ABP)$ again at $E, F;$ $O_a$ be center of $(BCQ)$. Prove that $AO_a$ $\perp$ $EF$
Proof. Let $D$ be second intersection of $AQ$ with $(BCQ)$. We have $$(BD, BC) \equiv (QD, QC) \equiv (CA, CQ) + (AQ, AC) \equiv (CP, CB) + (AB, AP) \equiv (CP, CB) + (FB, FP) \equiv (BF, BC) \pmod \pi$$Then $F, B, D$ are collinear. Similarly, $E, C, D$ are collinear. We also have $$(AF, AB) \equiv (PF, PB) \equiv (PC, PE) \equiv (AC, AE) \pmod \pi$$$$(BF, BA) \equiv (PF, PA) \equiv (PC, PA) \equiv (EC, EA) \pmod \pi$$But $$(CA, CP) \equiv (CQ, CB) \equiv (BC, BQ) \equiv (BP, BA) \equiv (FP, FA) \pmod \pi$$so $\triangle ACF$ is $A$ - isosceles triangle, hence $CA = AF$. Therefore, $\triangle ABF$ $\stackrel{+}{=}$ $\triangle AEC,$ which means $BF = CE$. So if we let $S$ be midpoint of arc $EDF$ then $S$ $\in$ $(BCD)$. Suppose $O', O_1, O_2$ is center of $(DEF), (DBE), (DCF)$. Since $O'O_a$ $\perp$ $DS$ and $DS$ $\perp$ $AD$ then $O'O_a$ $\parallel$ $AD$ or $O'O_a$ $\perp$ $O_1O_2$. But $O_2O_a$ $\perp$ $CD$ and $O'O_1$ $\perp$ $ED$ so $O_2O_a$ $\parallel$ $O'O_1$. Similarly, we have $O_1O_a$ $\parallel$ $O'O_2$. Hence $O'O_1O_aO_2$ is diamond. Therefore, $O_1O_2$ is perpendicular bisector of $O'O_a,$ then $O'O_aDA$ is isosceles trapezoid. From this, we have $$(AO_a, AD) \equiv (DA, DO') \equiv (DA, DE) + (DE, DO') \equiv \dfrac{\pi}{2} + (FE, FD) + (DF, DA) \equiv \dfrac{\pi}{2} - (AD, FE) \equiv (EF, O_1O_2) \pmod \pi$$But $AD$ $\perp$ $O_1O_2$ then $AO_a$ $\perp$ $EF$
Back to the main problem. Suppose that $G'$ is reflection of $G$ in $I$. Then $$(G'D, G'C) \equiv (GB, GA) \equiv (GF, GE) \equiv (KE, KF) \pmod \pi$$or $G'$ $\in$ $(CKD)$. Hence $(AGB)$ and $(CKD)$ are reflect in $I,$ therefore if we let $W$ be center of $(AGB)$ then $IW$ passes through center of $(CKD)$. Suppose $E', F'$ be reflections of $E, F$ in $M, N$. From the above lemma, we have $IJ$ $\perp$ $EF$. But $IJ$ $\perp$ $MN$ so $EF$ $\parallel$ $MN$ $\parallel$ $E'F'$. Since $IE, IF$ are isogonal conjugate in $\angle{AIB}$ then $IE, IF$ are isogonal conjugate in $\angle{E'IF'}$. But it's easy to prove that $FE', EF', IJ$ concur so if we let $S$ $\equiv$ $EM$ $\cap$ $FN$ then $IJ, IS$ are isogonal conjugate in $\angle{E'IF'}$ or $IJ, IS$ are isogonal conjugate in $\angle{AIB}$. Combine with $IJ, IW$ are isogonal conjugate in $\angle{E'IF'}$ hence $I, W, S$ are collinear