I tackled this question as follows by looking at the shortest string this language could generate and accept i.e. where n = 2
The string generated when n = 2: aaaabb
This is how I logically tackled the push and pop mechanisms:
aaaa PUSH --> X
bb POP --> X
I then took the string where n = 3: aaaaabba
For each additional a we should have a loop to PUSH X
bb will always POP an X
An additional a after the bb string will always POP an X
Please see below for my attempt at the DPDA.
Am I on the right track here?

You want the finite state (non-stack) part of the automaton to accept $aaa^*bba^*$, so start with that. That FSA will have a ‘garbage’ state (e.g., for inputs whose first character is $b$). It’s easiest, I think, to have the automaton accept by empty stack, so the transitions to the garbage state should push something onto the stack, and the transitions from the garbage state to itself should leave the stack alone: this ensures that inputs that aren’t even of the form $aaa^*bba^*$ can’t empty the stack. The first two $a$s should do nothing to the stack, and each of the remaining initial $a$s should push something onto the stack, after which each acceptable input (i.e., two $b$s and then $n$ $a$s) should pop the stack. The stack will end up empty if and only if the input has the form $a^{n+2}bba^{n-2}$.
It appears that you’re trying something along the same lines, but you need to pop the stack after each of the two $b$s, and you need to incorporate machinery to handle totally invalid inputs, like an initial $b$, or three $b$s after the initial string of $a$s.