As soon as you write "Then by the definition of infimum", you are saying incorrect things.
First: if $b$ is the infimum of $A$, then for every $\epsilon\gt 0$ there exists at least one $a\in A$ such that $a\lt b+\epsilon$. However, you claim this holds for all elements of $A$, which is false. Take $A = (0,1)$. Then $\inf A = 0$; and it is indeed true that for every $\epsilon\gt0$ there exists at least one $a\in A$ with $a\lt\epsilon$; but if $\epsilon=\frac{1}{10}$, it is certainly false that every $a\in A$ is smaller than $\epsilon$.
Second: the elements of $A$ are not $a_n$s! They are suprema of infinite sequences of $a_n$s, and as such cannot be assumed to be $a_n$s. For example, if $a_n = 1-\frac{1}{n}$, then $A=\{1\}$, and no $a_n$ is equal to any element of $A$.
So that sentence is not just wrong, it's doubly wrong. The rest of course is now nonsense.
The second part does not seem to be proving anything; you are just asserting things. Why do the conditions imply the inequalities? What properties of the limit superior are you using? It's a mystery.
Rather: let $A_n = \mathop{\sup}\limits_{k\geq n}(a_k)$. Prove that $A_n$ is a decreasing sequence: $A_{n+1}\leq A_n$ for all $n\in \mathbb{N}$. Your set $A$ is precisely the set of $A_n$s.
Now let $b= \inf A = \inf\{ A_n\}$. By the definition of infimum, for every $\epsilon\gt 0$ there exists $N$ such that $b\leq A_N\lt b+\epsilon$. Since the sequence of $A_n$s is decreasing, then for all $n\geq N$ we have $b\leq A_n\leq A_N\lt b+\epsilon$, so in fact we have that $A_n\lt b+\epsilon$ ultimately. Moreover, since $a_n\leq A_m$ for all $n\geq m$, this implies that $a_n\lt b+\epsilon$ ultimately, as required.
For the second clause of the first part, let $\epsilon\gt 0$. Then $b-\epsilon\lt A_n$ for all $n$. Now remember what $A_n$ is. $A_n = \mathop{\sup}\limits_{k\geq n}(a_k)$; since $b-\epsilon\lt A_n$, there exists $k\geq n$ such that $b-\epsilon\lt a_k\leq A_n$. That is: for all $n$, there exists $k\geq n$ such that $a_k\gt b-\epsilon$, so $a_k\gt b-\epsilon$ frequently.
For part (2), let $b$ be a real number that satisfies the given properties. Since for every $\epsilon\gt 0$ we have that $b-\epsilon \lt a_n$ frequently, that means that $b-\epsilon$ is not an upper bound for $\{a_k\mid k\geq n\}$ for any $n$. Therefore, $\sup\{a_k\mid k\geq n\} = A_n\gt b-\epsilon$. This holds for all $A_n$, so $\liminf a_n = \inf\{A_n\mid n\in\mathbb{N}\} \geq b-\epsilon$. This holds for all $\epsilon\gt 0$, so $\liminf a_n \geq b$.
Now, since $b+\epsilon\gt a_n$ ultimately, then $b+\epsilon$ is an upper bound for $A_m$ all sufficiently large $m$; since the $A_m$ are decreasing, that means that $\inf A_m \lt b+\epsilon$, hence $\limsup a_n\lt b+\epsilon$; this holds for all $\epsilon\gt 0$, so $\limsup a_n \leq b$.
Now that we have established the inequalities (rather than merely asserting them), we have $b\leq \limsup a_n \leq b$, hence $b=\limsup a_n$, as claimed. QED
Review
Let $a : n \mapsto a_n$ be a bounded sequence of real numbers.
For each $m \in \mathbb{N}$, let $\mathbb{N}_m$ be the set of integers $\ge m$, and let
$$A_m = \sup_{n \ge m} a_n.$$
The relation $\mathbb{N}_{m+1} \subseteq \mathbb{N}$ implies $A_{m+1} \le A_m$, and the relation $b \le a_m$ implies $b \le A_m$. This proves that the sequence $A : m \mapsto A_m$ is decreasing and bounded below. Therefore
$$\lim_{m \to \infty} A_m = \inf_{m \ge 0} A_m. \tag{$*$}$$
This number is called the upper limit of the sequence $n \mapsto a_n$. It is denoted by
$$\limsup_{n \to \infty} a_n, \quad \text{since}\quad \limsup_{n \to \infty} a_n = \lim_{m \to \infty} A_m = \lim_{m \to \infty} \sup_{n \ge m} a_m.$$
Theorem. $\ \ $Let $a : n \mapsto a_n$ be a bounded sequence of real numbers. Let $L \in \mathbb{R}$, and let
$$M = \limsup_{n \to \infty} a_n = \inf_{m \ge 0} A_m.$$
Then $M = L$ if and only if, for every $\epsilon > 0$, the following two conditions are satisfied :
1$\ \ $
There exists $m \in \mathbb{N}$ such that $a_n < L + \epsilon$ for all $n \ge m$.
2$\ \ $
For all $m \in \mathbb{N}$ there exists $n_m \ge m$ such that $a_{n_m} > L - \epsilon$.
Remark.$\ $
Let $\epsilon > 0$ and $m \in \mathbb{N}$. There exists $n_m \ge m$ such that $a_{n_m} > L - \epsilon$ if and only if $A_m > L - \epsilon$, for then $L - \epsilon$ is not an upper bound of $a(\mathbb{N}_m)$.
Proof of Necessity.$\ $
Suppose that $M = L$. Let $\epsilon > 0$. By the definition of infimum, there exists $m \in \mathbb{N}$ such that $L + \epsilon > A_m$. This proves (1). If $m \in \mathbb{N}$, then $A_m \ge L > L - \epsilon$. This proves (2) by the remark.
Proof of Sufficiency.
Given $\epsilon > 0$, suppose that conditions (1) and (2) are satisfied. Choose $m_0 \in \mathbb{N}$ such that $a_n < L + \epsilon$ for all $n \ge m_0$. Then $A_{m_0} \le L + \epsilon$, which implies that
$M \le L + \epsilon.$
Let $m \in \mathbb{N}$. Choose $n_m \ge m$ such that $a_{n_m} > L - \epsilon$. Then $A_m > L - \epsilon$, so $M \ge L - \epsilon$ by the definition of infimum. Consequently
$$L - \epsilon \le M \le L + \epsilon.$$
Taking the limit as $\epsilon \to 0$ gives the result.
Note
Conditions (1) and (2) can be restated more idiomatically as follows :
1'$\ \ $
$a_n < L + \epsilon$ for all but finitely many $n$.
2'$\ \ $
$a_n > L - \epsilon$ for infinitely many $n$.
However, I prefer the original statements for working out the proof.
Comments on your attempt
Your necessity proof is correct. However, in the second part you should add that, for any $m \in \mathbb{N}$, there is $n_m \ge \max(k,m)$ such that $a_{n_m} > L - 2\epsilon$.
The sequence $n \mapsto a_n$ converges if and only if
$$\liminf_{n \to \infty} a_n = \limsup_{n \to \infty} a_n,$$
in which case it converges to this common value. Your attempt at the sufficiency proof incorrectly makes this assumption.
Best Answer
You’ve misstated (2): it should say that there is a positive integer $m$ such that $a_n<\bar a+\epsilon$ for all $n\ge m$. To see that (1) and (2) are not contradictory, consider any constant sequence: if $a_n=c$ for each $n\in\Bbb Z^+$, and $\epsilon>0$, then $a_n>c-\epsilon$ for every $n\ge 1$, and $a_n<c+\epsilon$ for every $n\ge 1$. In this case $\limsup_na_n=c$.
More generally, suppose that $\langle a_n:n\ge 1\rangle$ converges to some limit $c$, and let $\epsilon>0$. Then there is an $m\in\Bbb Z^+$ such that $|a_n-c|<\epsilon$ for all $n\ge m$, i.e., such that
$$c-\epsilon<a_n<c+\epsilon$$
for all $n\ge m$. Clearly, then, $a_n>c-\epsilon$ for infinitely many $n$, and $a_n<c+\epsilon$ for all $n\ge m$, so $\limsup_na_n=c$.
But a sequence doesn’t have to converge in order for the limit superior to make sense. Consider the sequence $\langle (-1)^n:n\ge 1\rangle$. If $\epsilon>0$, then $(-1)^n<1+\epsilon$ for all $n\ge 1$, and $(-1)^n>1-\epsilon$ for all even $n\ge 1$, so $\limsup_n(-1)^n=1$ even though the sequence does not converge. (In fact it turns out that $\limsup_na_n$ is the largest cluster point of the sequence.)
The requirment that the sequence to be bounded is to ensure that condition (2) can be satisfied. Specifically, we need the sequence to be bounded above, because if it isn’t, there is no real number $\bar a$ such that $a_n<\bar a+1$ for all sufficiently large $n$.