Some of your code although it will work (errors excepted) appears to make no sense Dwayne... first a couple of hints...

Firstly. Download the Datasheet of the 12F675. Make friends with it. Look at the drawing of the Pinout at the start of Page 1. The first mistake you've made is assigned GPIO.3 as an output, when this is an INPUT ONLY pin. So this has to be assigned to a different pin.

Second. Assign names to your I/O lines... that way if you need to reassign pins (as you do now), you only need to do it in one place, and it makes it so much more readable and easier to follow... eg...

Battery var GPIO.3 ' (you need to change GPIO.3 to another pin)
ButtonPin var GPIO.4 ' This is your Button-press Simulation
LED var GPIO.5 ' three guesses what this pins got on it...

Now instead of in your Delaymin subroutine saying...

toggle GPIO.5

you now say...

toggle LED

see... reading the code instantly you can see what you're doing rather than thinking "what have I got connected to GPIO.5?" Also if you need to change pins (like you do with GPIO.3), you need only change it ONCE at the top of your code with the var assignment, rather than a million times in the intricate depths of your code.

Thirdly. You forgot the colon at the end of Delaymin at the start of your subroutine.

Fourthly. You've not assigned TRISIO or made the pins Digital. By default, the 12F675 comes up with the pins in Analogue mode... so you need...

ANSEL=0 ' see Datasheet section 7.2
CMCON=%00000111 ' see Datasheet section 6.0 & table 6.2

for TRISIO each pin on the 12F675 can be input or output. Assign a 1 for input and a '0' for output. So in the example below, pin 3 is input only (bit 3 is set to '1'), all the others are output. The 12F675 doesn't have pins 6 and 7 (bits 6 & 7), so they're ignored...

TRISIO=%00001000

Fifthly... if there is such a word... you're dropping in semicolons for comments. Semicolons ";" are comments for ASSEMBLER, use the single quote (' - apostrophe) for comments in BASIC.

Sixthly... scatter comments freely... they help you (and others) follow the code more easily...

Now your code rehashed looks something like this...

'
' Hardware Assignments
'
Battery var GPIO.6 ' I've reassined this from pin 3 to pin 6
ButtonPin var GPIO.4 ' This is your Button-press Simulation
LED var GPIO.5 ' OK you guessed it - this is your LED...
'
' Software Assignments
'
Seconds var byte ' 0-59
Minutes var byte ' 0-5
counter var byte ' 0-3
counter=0
'
' Initialise Hardware
'
ANSEL=0
CMCON=%00000111
TRISIO=%00001000
'
' Main Program Starts Here
'
Loop:
Low Battery
'Battery backup pin toggles base of transistor to insure 5 volts
'
' Six minute Delay
'
For Minutes=0 to 6
gosub Delaymin
Next Minutes
'
' Simulate Button Press
'
Low ButtonPin
Pause 250
High ButtonPin
'
' Wait another minute
'
gosub Delaymin
'
' The Confusing Bit
'
' takes battery backup off. If no power, chip stops.
' and starts over again when power is applied to it.
' if not, chip reassures battery backup for up to 3 times.
High Battery
counter=counter+1
if counter=3 then Low Battery
gosub Delaymin
'
' Run Main Loop Again
'
goto Loop

'
' Subroutine Area
'
Delaymin:
For Seconds=0 to 59
Pause 1000
Toggle LED ' flashing light for reference
Next Seconds
return
'
' End of Program
'
End

Now I label the end section "The Confusing Bit" because I can't see what you're trying to achieve here. You set Battey High, and only set it Low after three counts... but look... as soon as you loop back in your loop, it gets set Low anyway... kinda defeats the object...

Anyway... enough of me pulling your code apart...

Melanie