Besides all the very good buoyancy suggestions above, have you tried descending and ascend in a horizontal, rather than in a vertical body position?
If you remain horizontal, this alone slows your upward or downward momentum, because of resistance. In the horizontal position, you can roll slightly to one side and pull your butt dump valve, if so equipped, which is more effective than the shoulder dump, to stop a rapid ascent. You can also quickly shift your feet into whatever position they may need to be in to make any corrections, should that be necessary.
If you remain horizontal, this alone slows your upward or downward momentum, because of resistance. In the horizontal position, you can roll slightly to one side and pull your butt dump valve, if so equipped, which is more effective than the shoulder dump, to stop a rapid ascent. You can also quickly shift your feet into whatever position they may need to be in to make any corrections, should that be necessary.