What your code is effectively doing is checking for both focused and focus one after the other, where you could instead exclude one based on the results of the other (well .. i managed to put that pretty cryptic o.O).
What i mean is, when you have the "Soandso gains Focused." message your code will first check for focused and regardless of what it found, it will check for focus after. Instead you could determine, based on your first check whether or not it makes sense to carry out the second check.
Since "Focus" will always trigger for "Focused" as well, your code will always override the "Focused" splash with the "Focus" one. The code below should help avoid that by simply adding else to the second if statement, making it only evaluate if the "Focused" check failed.
Code:
if (msg:find("You gain Focused.")) then
-- Focused was triggered
elseif (msg:find("You gain Focus.")) then
-- Focus was triggered
end
This should make it only trigger for Focus, when it has determined, that it's not the Focused effect.
Hope this helps any.