The response to speed steps are determined by the receiving locomotive. As for the BASE3, it's the same as the Legacy command base as far as handling speed steps. The actual format of the speed commands sent are determined by the remote, not the command base.
Let's see if this gives any clue, here is what I did to go to 32 steps and here is what I accomplished:
1) Starting point: The loco speed responds correctly to the red dial on the cab 1 when base 1 is connected.
2) I could not find any way to use the cab 3 / base 3 to change TMCC speed steps so I reconnected the old cab 1/ base 1 system.
3) With base 1 connected, used the cab 1 to change speed steps to 32. Using the cab 1, good speed range using the cab 1.
4) reconnected the base 3 and using the cab 3 app, the locomotive runs about 5 scale miles per hour tops and the throttle registers 32 steps at max on the numerical read out on the app. This is an improvement over the crawl I started with. I should have paid attention, but it must have originally been at 256 when I first tried to run this loco a few weeks ago when the base 3 had just arrived. It barely crawls at that speed setting with the base 3/ cab 3.
Per GRJ's comment, the speed step response is in the locomotive, but it must be receiving something different from the cab 1 versus the cab 3/ base 3? Am I missing a setting in the cab 3/ base 3?