Got any code reader that reads B codes? or you can also use Forscan to see if there are any B codes stored. I once encountered a similar issue, and there was a B code stored in the system that pointed towards a correlation error in one of the mirrors. Fortunately for us, the memory correlation is managed by the mirror motor itself, so if you find a code for horizontal/vertical memory correlation mismatch you can attempt to replace the mirror motor with an OEM unit (~$45 ish) to see if the code goes away and the unit starts functioning again.
One more thing: when I had that issue, stuff eventually aggravated to the phase where the affected side wouldn't move at all with the memory button, but could otherwise be controlled with the directional inputs from the switch.