Many of your elseif comparators could simply be else. The code also sets Hpwm then enters "if then" potentially changing the value again the first Hpwm is not needed. Just to give you some ideas here is an example of what could be done. I have included a space either side of the comparators, Vp < 300 not Vp<300. Just personal preference on my part? Probably but I have learned to be very strict with code syntax.

Code:
  main:
   Serin portc.7,2,char           'Receive data sent from the transmitting pic 
if (char = "A" ) then            'if data is character A
   
   pause 50
   Adcin 0, Temp                            ' Read channel 0 to Temp (0-1023)
   Temp = (Temp */ 500)>>2                  ' Equates to: (Temp * 500)/1024
   LCDOut ,$fe,$80,"Temp= ",DEC2 Temp       'Display Temp On The First Line 
   
   Adcin 1, Vp                                                     'Read channel 1 to Vp (0-1023)
   Vp = (Vp */ 500)>>2                                             'Equates to: (Vp * 500)/1024
   LCDOut $fe,$c0 ,"Pressure = ",DEC (Vp/100),".", DEC2 Vp," volt" 'Display Voltage out of pressure sensor on second line
   
   Adcin 2, Vl                                                     'Read channel 2 to Vl (0-1023)
   Vl = (Vl */ 500)>>2                                             'Equates to: (Vl * 500)/1024
   LCDOut $fe,$94 ,"Level= ",DEC (Vl/100),".", DEC2 Vl," volt"     'Display Voltage out of Level sensor on third line    

   if portd.0 = 0 then               'Soil Moisture is lower than preset value 
    if  Vp < 300 then                   'Voltage From Pressure Sensor is Less than preset value (3 volt)
       if Vl < 300 then                 'If voltage of Level sensor is Less than preset value (3 volt) 
       hpwm 1,179,5000              'Pump is on with 70% duty cycle at 5 khz
       else                             'If voltage of Level sensor is more than or equal preset value
       hpwm 1,77,5000               'Pump is on with 30% duty cycle at 5 kHz
       endif 'vl <
    endif 'vp<
    if Vp >= 300 then                'Voltage From Pressure Sensor is more than or equal preset value (3 volt)
       if Vl < 300 then                  'If voltage of Level sensor is less than preset value (3 volt)
       hpwm 1,179,5000               'Pump is on with 70% duty cycle at 5 khz
       else                             'If voltage of Level sensor is more than or equal preset value
       hpwm 1,77,5000                'Pump is on with 30% duty cycle at 5 khz
       endif 'vl<
    endif 'vp>
   endif '=

   if portd.0 != 0 then            'Soil Moisture is high or equal to preset value
       hpwm 1,0,5000                 'Turn off Pump
       hpwm 2,0,5000                 'Turn off Solenoid
   endif '!=
endif 'A

if (char = "B") then
   lcdout $fe,1                       'Clear LCD
   hpwm 1,0,5000                      'Turn off Pump
   hpwm 2,0,5000                      'Turn off Solenoid
endif

   

   Goto main                          'Do it forever
I am now thinking why sending "B" does not work and an answer eludes me. I need time for more thought.