I constantly use loads more than 3 locals, I could have 10-20 even. I suspect the issue is the way you're starting..
I make a PROC
WinMainCRTStartup PROC FRAME USES rbx ....
for example.. The end directive then uses the proc name instead of a start label.
This assembles fine and the stack is right on start and you don't have to fiddle with rsp.
END_APP MACRO
end WinMainCRTStartup
ENDM
So-far i'm not having any trouble with the latest jwasm including debugging 64bit in Visual studio.
John