I have two finite automata, one for words containing "bab" and one for words with "abb."
I wish to build automata that represent the multiplication of both (words with both "bab" and "abb").
See Image of both automata.
Attempt
I tried to write a solution but only got an automaton that works for "bab" or "abb".
Regular languages are closed under the operations "union" and "complement".
The proof of this theorem is constructive: given two automata which accept regular languages $L_1,L_2 \subset A^*$, it tells you how to use those automata to construct languages for $L_1 \cup L_2$, and for $A^* - L_1$.
From your post, it sounds like you might already have an intuition for how to do this for unions. For complements the construction is straightforward.
So now you can do it for intersections, using De Moivre's formula $$L_1 \cap L_2 = A^* - \bigl((A^* - L_1) \cup (A^* - L_2)\bigr) $$ In other words, regular languages are closed under intersection: if $L_1$ accepts words containing "bab" and $L_2$ accepts words containing "abb" then $L_1 \cap L_2$ accepts words containing both "bab" and "abb".