I tried to think about this using De-Morgan's laws:
$\{A_{n} \text{ i.o} \} = \bigcap_{m\ge 1} \bigcup_{n\ge m} A_n$
so $\{A_{n} \text{ i.o} \}^c = \bigcup_{m\ge 1} \bigcap_{n\ge m} {A_n}^c$
once you take the union of $m=1$ and $m=2$:
$({A_1}^c\cap{A_2}^c\cap{A_3}^c...)\cup({A_2}^c\cap{A_3}^c...)$
this means the element does not have to be in ${A_1}^c$ so can be in $A_1$. This continues for all $A_n$ so I'm not sure this shows the element has to be in finitely many $A_n$?
Have I thought about this the correct way?
Your reasoning is correct. It helps to think of $\cap$ as "and" and $\cup$ as "or". Your last expression is a union, so for an element to be in it, it has to be in one of the sets $(A_m^c\cap A_{m+1}^c\cap\dots)$, meaning that it is not in any of the sets $A_n$ for $n\ge m$. This means it's only in finitely many of the $A_i$.
Another good way to think about it is that you're applying negation rules to logical quantifiers: $\lnot(\forall m\ge1,\exists n\ge m,P_n)\iff \exists m\ge1,\forall n\ge m,\lnot P_n$.