On top I would suggest also these two modifications to your subroutine:

1) Not necessary to serout twice the same code (127)
2) the Goto Skip will take you out of the For/Next loop


Code:
   '================================================== ================
 '************************************************* *******************
 '* Name : Syn-Ren50.BAS Author : Bob Wills *
 '* MCU : PIC 16F84A USE : OLIN FOX LIFT *
 '* Date : 08/04/2012, Ver. 2.0 PicBasic Pro Compiler *
 '* Words: 712 Duty Cycle: ~ 0.79 step/1%DC * 
'* NOTE: This program controls a BDC motor to move a lift up/down *
 '* with the following features: *
 '* 1. Increase the motor speed (up/down) from stop to running speed.*
 '* 2. Decrease the motor speed (up/down) just before the stopping *
 '* limit switch. *
 '* 3. Provide various stopping rates for safety purposes. *
 '* 4. The motor is controlled by a Dimension Engineering *
 '* Single Channel 50A continuous/100A peak, Brushed motor *
 '* controller, Model: SyRen50. This contoller containa a MCU. *
 '* 5. A PIC16F84A interfaces between the lift inputs and the SyRen50 *
 '* and sends control signals to the SyRen50 using the PBP *
 '* "SEROUT" statement -- SEROUT mtrdat, T2400, [n] *
 '* 6. SEROUT mtrdat, T9600, [127] = motor stop, *
 '* ...[0] = motor full reverse; ...[255] = motor full forward. *
 '************************************************* ********************
@ DEVICE PIC16F84A, XT_OSC ' 4Mhz
@ DEVICE PIC16F84A, WDT_OFF ' Watchdog Timer
@ DEVICE PIC16F84A, PWRT_ON ' Power-On Timer
@ DEVICE PIC16F84A, PROTECT_OFF ' Program Code Protection
 
stdwnv con 109 'range 127-0: 96~6vdc, 64~12vdc 
stupv con 145 'range 127-256: 158~6vdc, 190~12vdc
 upstps con 30 'up
 dwnstps con 30 'down
 sloup con 30 'up end speed
 slodwn con 30 'down end speed
 i var byte
 n var BYTE
 upv var byte
 dwnv var byte
 'pin
 sss VAR PORTA.0 'Pin 17 'RA0/AN0 input safety switch
 slo VAR PORTA.1 'Pin 18 'RA1/AN1 input for slow interrupt
 upstp VAR PORTA.2 'Pin 1 'RA2/AN2/CVREF/VREF- input for up stop
 dwnstp VAR PORTA.3 'Pin 2 'RA3/AN3/VREF+/C1OUT input for down stop 
' VAR PORTA.4 'Pin 3 'RA4/AN4/T0CKI/C2OUT recvr input = down start 
' Pin 4 MCLR
 ' Pin 15 OSC2/CLKOUT
 ' Pin 16 OSC1/CLKIN
 
syrenpwr VAR PORTB.0 'Pin 6 'RB0/INT/CCP1 output to the syren power relay
 mtrlp VAR PORTB.1 'Pin 7 'RB1/SDI/SDA output to the motor loop relay
 mtrdat VAR PORTB.2 'Pin 8 'RB2/SDO/RX/DT output data control for syrenpwr 
' VAR PORTB.3 'Pin 9 'RB3/PGM/CCP1 
rkrup VAR PORTB.4 'Pin 10 'RB4/SCK/SCL rocker input for up start 
rcvrdn VAR PORTB.5 'Pin 11 'RB5/SS/TX/CK receiver input for down start 
rcvrup VAR PORTB.6 'Pin 12 'RB6/AN5/PGC/T1OSO/T1CKI ICSP CLOCK 
'rcvr input for up start
 ' VAR PORTB.7 'Pin 13 'RB7/AN6(6)/PGD/T1OSI ICSP DATA Manual Switch
 
PORTA = 5 'PORTA MEMORY ADDRESS
TRISA = 133 'TRISA MEMORY ADDRESS
TRISA = %11111111 'SET PORTA DATA DIRECTIONS
PORTA = %00000000 'CLEAR PORTA MEMORY
 
PORTB = 6 'PORTB MEMORY ADDRESS
TRISB = 134 'TRISB MEMORY ADDRESS 
TRISB = %11111000 'SET PORTB DATA DIRECTIONS 
PORTB = %00000000 'CLEAR PORTB MEMORY

INCLUDE "modedefs.bas" 


'-------------------------------------------------------------------------- 
loopx: 

 if (rcvrup = 0) and (upstp = 1) then
     gosub pwrup
     gosub uprcvr
 else
 
    gosub pwrdwn
 
 endif

 if (rcvrdn = 0) and (dwnstp = 1) then
    gosub pwrup
    gosub dwnrcvr
 else
 
    gosub pwrdwn
 
 endif

 goto loopx
 '--------------------------------------------------------------------------
 dwnrcvr: 'Increases motor speed from stop to "up speed rate'

 serout mtrdat, T2400, [stdwnv] 
 pause 1000
 dwnv = stdwnv
 pause 50 
 for i = 1 to dwnstps step 1
     dwnv = dwnv - 1 
     SEROUT mtrdat, T2400, [dwnv]
     pause 50
     if (rcvrdn = 1) oR (dwnstp = 0) then 'stop & limit sw
         gosub pwrdwn
     Goto Skip_01
     endif
 next i
 
Skip_01:
 pause 1000
 
 return
 '--------------------------------------------------------------------------
 uprcvr: 'Increases motor speed from stop to "up speed rate'

 serout mtrdat, T2400, [stupv] 
 pause 1000
 upv = stupv
 pause 50 
 for i = 1 to upstps step 1
     upv = upv + 1 
     SEROUT mtrdat, T2400, [upv]
     pause 50
     if (rcvrup = 1) oR (upstp = 0) then 'stop & limit sw
         gosub pwrdwn
     Goto Skip_02
     
     endif
 next i
 Skip_02:

 pause 1000

 return
 '--------------------------------------------------------------------------
 pwrup:
 high syrenpwr
 pause 500
 serout mtrdat, T2400, [127]
 pause 250
 high mtrlp
 
 return
 '--------------------------------------------------------------------------
 pwrdwn:
 serout mtrdat, T2400,[127]
 pause 50
 low syrenpwr 
 pause 10 
 low mtrlp

 return 
'--------------------------------------------------------------------------