Der benutzte Pin wird nicht als Ausgang geschaltet weil
die Zeile bcf TRISIO,GPIO0 falsch ist.
Sie muss entweder bcf TRISIO,TRISIO0 oder bcf TRISIO,0 lauten.
siehe Datenblatt Seite20
In diesem Register lauten die Bits nicht GPIO,0-5 sondern TRISIO,0-5

Weiterhin ist die Delay-Routine fehlerhaft:
Die Delayvariablen werden nachdem sie Null erreicht haben nicht wieder auf ihren ursprünglichen Wert zurückgesetzt sondern zählen dann von 0xFF rückwärts.