It's always the simplest of things that get you. So in case anyone is interested, tt turns out setting TRISE, GPIOE and GPIOC at the end of the main loop solves the problem. I also set TRISE as an input early on but it wasn't necessary.

Code:
'****************************************************************
'*  Name    : UNTITLED.BAS                                      *

'--------------------------------------------------clock variables
ticks var byte
seconds var byte
minutes var byte
hours var byte
days var byte
'-----------------------------------------------my variables
secondschanged var byte 'seconds
out_tens var byte
minutes_changed var byte 'minutes
minutes_count var byte
tens_minutes var byte
out_tens_minutes var byte
'---------------------------------------------------testing variables
led1 var portb.1
led2   var portd.0 ' blinks at pause rate
trisc = %00000000
trise = %111
portc = 0
porte = 0
cmcon = %00000111 ' comparators off
adcon0 = %00000000 ' adc off
adcon1 = %11000110 ' sets AN ports to digital
ccp1con = %00000000 ' turns comparator module off
latch_enable var porte.0' pin 8 on 16f877a
second_latch_enable var porte.1 'pin 9 on 16f877a 
tens_seconds var byte ' something for the tens digit to display
'-------------------------------------------DT interrupt area
wsave   VAR BYTE    $70     SYSTEM    ' alternate save location for W 
                                      ' if using $70, comment wsave1-3
INCLUDE "DT_INTS-14.bas"    ' Base Interrupt System
INCLUDE "ReEnterPBP.bas"    ' Include if using PBP interrupts
define osc4
ASM
INT_LIST  macro    ; IntSource,        Label,  Type, ResetFlag?
        INT_Handler   TMR1_INT,  _ToggleLED1,   PBP,  yes
    endm
    INT_CREATE               ; Creates the interrupt processor
ENDASM
T1CON = %00000001                ; Prescaler = 1:1, TMR1ON
@ INT_ENABLE  TMR1_INT     ; enable Timer 1 interrupts
preload var word
preload = 60643 '60643 yeilds exactly 100 Hz w/ 1:1 prescaler 
      
tmr1l = preload.lowbyte
tmr1h = preload.highbyte
'seconds = 0
'tens_seconds = 0
'minutes_count = 0
tens_minutes = 0
 

Main:
'--------------------------------------------increment seconds
if ticks > 10 then 'seconds counting to 59
     ticks = 0
     seconds = seconds + 1
             if seconds > 9 then 
             tens_seconds = tens_seconds + 1
             seconds = 0
             endif
      portc = (portc & %11110000) | seconds'tell the port which bits to use
            if tens_seconds > 5 then
            tens_seconds = 0
            minutes_changed = 1
            endif
      out_tens = tens_seconds * 16
      trise = %110 ' porte.0
      portc = (portc & %00001111) | out_tens 'tell the port which bits to use
      high latch_enable  ' enable write
      pause 5
      low latch_enable 'disable write
      pause 5
endif
'-----------------------------------------------increment minutes
if minutes_changed = 1 then
         minutes_changed = 0
         minutes_count = minutes_count + 1
             if minutes_count > 9 then 
             tens_minutes = tens_minutes + 1
             minutes_count = 0
             endif
     portc = (portc & %11110000) | minutes_count'tell the port which bits to use
           if tens_minutes > 5 then
           tens_minutes = 0
           endif
          out_tens_minutes = tens_minutes * 16
          trise = %101 ' porte.1
          portc = (portc & %00001111) | out_tens_minutes 'tell the port which bits to use
          high second_latch_enable 'disable write
          pause 5
          low second_latch_enable
          pause 5
endif         
porte = 0         
trise = %111
portc = 0
toggle led2
pause 100
GOTO Main
'---[TMR1 - interrupt handler]------------------------------------
ToggleLED1:
           t1con.0 = 0
           tmr1l = preload.lowbyte
           tmr1h = preload.highbyte
           t1con.0 = 1
     TOGGLE LED1
     ticks = ticks + 1
@ INT_RETURN
End