Proposition: Let A be a subset of R which is bounded below. Let B be a subset of R which is bounded above. If $\inf(A) < \sup (B) $ then there is some $a \in A$ and $b \in B$ such that $a<b$.
Proof:
Let $\inf(A) = I$ and $\sup(B) = S$
So $I<S$
By definition, $\forall a \in A, I\leq a$ and $\forall b \in B, b\leq S$
Case 1: If I $\in A$ and S $\in B$, we are done.
Case 2: If I $\notin A$ and S $\notin B$, then assume BWOC $\nexists a \in A $ and $b\in B$ such that $a<b$
So $\forall a \in A$ and $\forall b \in B, b \leq a$
So $\forall a \in A$, $a$ is an upper bound for B.
But since S is the least upper bound for B, $b\leq S<a$
$S<a$
So $S$ is also a lower bound for $A.$
But since $I$ is the greatest lower bound for $A$, $S<I$, which is a contradiction.
Is my proof valid? If not, what am I missing? Would I have to show that this holds for other cases as well?
Your proof works fine; note that what you've done in case $2$ is actually sufficient to prove the full statement, though. As you say, assume that there do not exist elements $a\in A$ and $b\in B$ such that $a<b$. Then for any $a\in A$, we have that $a\geq b$ for any $b\in B$. In particular, $a$ is an upper bound for $B$ so that $\sup B\leq a$. Since $a\leq\sup A$ by definition, we have $\sup B\leq \inf A$, and this is a contradiction.
In fact, you don't need to use contradiction; the statement is not too hard to prove directly. Define $\varepsilon=\sup B - \inf A$. By definition of infimum and supremum, there exists an $a\in[\inf A,\inf A+\varepsilon/2)$ and similarly there exists a $b\in(\sup B-\varepsilon/2,\sup B]$. By construction, $a<b$ so the statement is proven.