In the first example, it seems like the problem is with an intuition of truth being "high likelihood." You can't start from
(a') If a Republican wins, then if Ronald Reagan doesn't win, Anderson will win
(b') It is highly likely that a Republican will win
(c') If Reagan doesn't win it is highly likely that Anderson will win
That certainly is not a valid statement, even if (a') and (b') are true. But it also isn't an application of Modus Ponens.
(For those not old enough to remember, in 1980, the US presidential election was between Reagan, a Republican, Carter, a Democrat, and Anderson, a Republican running as an independent. Anderson was not very likely to win - if Reagan did not win, then it was highly likely that Carter would be the winner. But, given that a Republican was going to win, if Reagan did not win, it was most likely that Anderson would have won.)
Vann McGee, then, appears to be unaware of the fact (or just playing qwith it) that the truths used in logic are absolute. Modus Ponens only works if you are careful about your language. If you are lazy about your language, as in all things, logical deduction is useless.
If you want to deal with degrees of likelihood, you want probability. If you want degrees of truth other than pure "true" and pure "false," you want fuzzy logic. Modus Ponens fails in these variants of logic, and it is worth exploring how it fails and what sorts of deductions you can do in these spaces, but it is hardly a failure of modus ponens - it is more a failure of imprecise colloquial language.
The lungfish example is actually a different sort of error, fundamentally related to the difference between Propositional Logic, in which the only types are propositions, and First Order Logic, in which you can make propositions about "all" things. In first order logic, you would write:
(a) For any thing, if the thing is a fish, then if the thing has lungs, then the thing is a lungfish.
(b) This thing is a fish
(c) Therefore, if this thing has lungs, then this thing is a lungfish.
(c) Is not the same as saying, "For any thing, if the thing has lungs, then the thing is a lungfish," but rather, a statement about a specific thing about which we have some (possibly incomplete) information.
If you start with the statements:
(u) For all X, If X won the election, then X is a Republican.
(v) Y won the election
You can conclude:
(w) Y is a Republican
But that doesn't mean that (w) is true for all Y, it only means it is true given the statement (v).
One of the frequent flaws in elementary logic is that people think "implication" actually implicitly means "for all cases." (Often it also is taken to imply causality.) It doesn't. Implication is always about individual instances. The only way you get a "for all" added to implication is by explicitly adding that phrase to the sentence. In common language, it often doesn't need to be there. But the meaning in hard logic of the "P implies Q" is always about an individual instance, and the only way to make it general is by adding a "for all" explicitly to the sentence and adding a variable to the expression.
Modus ponens is a purely Propositional Logic statement.
The symbol $\forall$ is used to represent "For all" in First Order Logic. What you are trying to do is start with the statements:
(a) $\forall X: P(X)\implies Q(X)$
(c) $\forall Y: Q(Y)$
But that is not how modus ponens of First Order Logic works. You cannot add back the $\forall$ part of the sentence. What you can do, from (a), and (b) is conclude:
(a') $P(Y)\implies Q(Y)$ (by the substitution rule for $\forall$)
(d) $Q(Y)$ (By modus ponens)
$Q(Y)$ is not the same statement as $\forall Y: Q(Y)$. $Q(Y)$ is a conclusion given that you've already stated that you know $P(Y)$ is true.