We deal with the general case of $n\ge 2$ coins.
Let the $i$-th coin have probability $p_i$ of landing heads, and $q_i$ of landing tails. (Of course $p_i+q_i=1$, but that will turn out to be of no importance!)
Then the probability of $k$ heads and $n-k$ tails is the coefficient of $x^k$ in the product
$$(p_1x+q_1)(p_2x+q_2)(p_3x+q_3)\cdots(p_nx+q_n).$$
If the probabilities are to be all equal, this product must be identically equal to
$$\frac{1}{n+1}(x^n+x^{n-1}+x^{n-2}+\cdots +x+1).$$
However, $x^n+x^{n-1}+x^{n-2}+\cdots+x+1=0$ has some non-real roots, and therefore cannot be expressed as a product of $n$ linear factors with real coefficients.
Remark: Though we did not use the term, this was a generating function argument. Note how smoothly a generating function argument can sidestep potentially messy algebra.
I think you could use a good bit more detail ...
$FH$: fair coin comes up heads. $P(FH) =\frac{1}{2}$
$FT$: fair coin comes up tails. $P(FT) =\frac{1}{2}$
$UH$: unfair coin comes up heads. $P(UH) =\frac{3}{4}$
$UT$: unfair coon comes up tails. $P(UT)=\frac{1}{4}$
$X$: same outcome. $X=(FH \cap UH) \cup (FT \cap UT)$.
$$P(X)= P(FH \cap UH) \cup (FT \cap UT) = \text{ (mutually exclusive events) } $$
$$=P(FH \cap UH) + P(FT \cap UT) = \frac{1}{2}*\frac{3}{4}+\frac{1}{2}*\frac{1}{4}=\frac{1}{2}$$
Hence, $P(X^C)=1-P(X)=\frac{1}{2}$
$G$: guess correctly
$P(G|X)=\frac{1}{2}$ since if both come up same then random pick.
$$P(G|X^C) = \frac{P(FT \cap UH)}{P(X)}=\frac{\frac{1}{2}*\frac{3}{4}}{\frac{1}{2}}=\frac{3}{4}$$
So:
$$P(G) = P(G \cap X) +P(G \cap X^C)= P(X)*P(G|X)+P(X^C)*P(G|X^C)=$$
$$ \frac{1}{2}*\frac{1}{2}+\frac{1}{2}*\frac{3}{4}=\frac{5}{8}$$
Best Answer
Since $100$ is a small enough number, you can compute the entire distribution exactly with the help of a computer.
More generally, say that there are $m$ coins total, with probabilities $p_1,p_2,\dots,p_m$ of heads, and you want the full probability distribution for the total number of heads. For each $k\in \{0,1,\dots,m\}$, let $q^m_k$ be the probability that there are exactly $k$ heads among the $m$ coins. You can prove that $$ q^m_k=p_m\cdot q^{m-1}_{k-1}+(1-p_m)\cdot q^{m-1}_k\tag1 $$ This follows by conditioning on the outcome of the $m^\text{th}$ coin. Either the $m^\text{th}$ coin is heads, and you need exactly $k-1$ heads among the first $m-1$ coins, or the $m^\text{th}$ coin is tails, and you need exactly $k$ heads among the first $m-1$ coins.
Using $(1)$, you can compute $q^m_k$ for all $k\in \{0,1,\dots,m\}$ by filling out an $(m+1)\times (m+1)$ table, where the rows and columns are labeled from $0$ to $m$. The entry in the $i^\text{th}$ row and $j^\text{th}$ column should be filled with $q^i_j$, using formula $(1)$, together with the numbers in the previous row. You need to fill the rows in the order $0,1,\dots,m$, so the numbers in the previous row are available when you need them. The zeroth row is the easiest; $q^0_0=1$, while $q^0_j=0$ for all $j>0$. This takes $O(m^2)$ additions and multiplications, which is manageable by a computer when $m=100$.
There do exists faster methods. Consider a small case, say $m=4$ and $k=3$. You can show that $$ q^4_3=p_1p_2p_3{(1-p_4)}+p_1p_2(1-p_3)p_4+p_1(1-p_2)p_3p_4+(1-p_1)p_2p_3p_4. $$ Now, define $r_i=p_i/(1-p_i)$ for each $i\in \{1,2,3,4\}$. Then $$ q^4_3=(1-p_1)(1-p_2)(1-p_3)(1-p_4)[r_1r_2r_3+r_1r_2r_4+r_1r_3r_4+r_2r_3r_4] $$ The expression $r_1r_2r_3+r_1r_2r_4+r_1r_3r_4+r_2r_3r_4$ is known as "the third elementary symmetric polynomial in four variables", and is usually notated as $e_3(r_1,r_2,r_3,r_4)$. In general, as long as you can compute $e_k(x_1,\dots,x_n)$, the $k^\text{th}$ elementary symmetric polynomial in $n$ variables, then you can compute $q^n_k$. For a fast method to compute $e_k(x_1,\dots,x_n)$, see this Computer science stack exchange question.