Faits:
A. A.a Depuis le 1er mai 2002, les époux G._ et D._ sont au bénéfice de prestations complémentaires à l'assurance-vieillesse, survivants et invalidité, fondées sur le droit cantonal genevois. Par décision du 11 avril 2006, l'Office cantonal des personnes âgées (ci-après : OCPA) a exigé la restitution d'un montant de 20'388 fr., qu'il considérait avoir versé à tort. G._ a réagi par lettres des 18 et 28 avril 2006, que l'OCPA a interprétées comme une demande de remise de l'obligation de restituer. Il a rejeté cette demande par décision du 4 août 2006 et décision sur opposition du 19 octobre 2006. Le 6 juin 2007, le Tribunal des assurances sociales du canton de Genève a jugé que les lettres des 18 et 28 avril 2006 constituaient une opposition à la décision de restitution du 11 avril 2006 et a renvoyé la cause à l'OCPA pour qu'il rende une décision sur opposition.
A.b Par décision du 9 juillet 2008, le Service des prestations complémentaires du canton de Genève (ci-après : SPC), qui a remplacé l'OCPA depuis le 1er mai 2008, a fixé à 21'823 fr. le montant des prestations dues pour la période du 1er mai 2002 au 31 juillet 2008; après déduction des prestations déjà versées, il constatait qu'il devait encore un montant rétroactif de 3055 fr. Par lettre du 10 juillet 2008, il a communiqué cette décision à G._, en précisant qu'elle devait encore restituer un montant de 17'333 fr., correspondant à celui exigé par décision du 11 avril 2006, après déduction de 3055 fr. Par lettre du 14 juillet 2008, l'assurée s'est opposée à cette demande de restitution. Le SPC a transmis cette lettre au Tribunal des assurances sociales du canton de Genève comme objet de sa compétence.
B. Par jugement du 12 novembre 2008, le Tribunal des assurances sociales du canton de Genève a annulé «la décision du 10 juillet 2008» et condamné le SPC à verser aux époux un montant de 1756 fr.
C. Le SPC interjette un recours en matière de droit public et un recours constitutionnel subsidiaire contre ce jugement. Il en demande l'annulation et conclut, en substance, à la condamnation de G._ au paiement de 17'333 fr. A titre subsidiaire, il demande l'annulation du jugement entrepris et le renvoi de la cause à la juridiction cantonale pour instruction complémentaire et nouvelle décision. Le Tribunal des assurances sociales du canton de Genève s'est déterminé sur le recours par acte du 5 février 2009.

Considérant en droit:
1. Le Tribunal fédéral examine d'office la recevabilité des litiges qui lui sont soumis (<ref-ruling> consid. 1 p. 117, 235 consid. 1 p. 236).
2. Le litige porte exclusivement sur le droit de l'intimée à des prestations complémentaires fondées sur la loi cantonale genevoise sur les prestations complémentaires cantonales à l'assurance-vieillesse et survivants et à l'invalidité du 25 octobre 1968 (LPCC/GE; RSG J 7 15), ainsi que sur son obligation de restituer de telles prestations. Or, le Tribunal fédéral a déjà nié la qualité du SPC (à l'époque, de l'OCPA) pour interjeter un recours en matière de droit public contre un jugement cantonal portant exclusivement sur le droit à des prestations complémentaires fondées sur la législation cantonale : d'une part, le SPC ne se voit pas expressément conférer la qualité pour recourir par une loi fédérale au sens de l'art. 89 al. 2 let. d LTF, le droit de recours prévu par l'art. 38 OPC-AVS/AI, en relation avec l'art. 62 al. 1bis LPGA, ne concernant que les litiges relatifs à des prestations complémentaires fondées sur le droit fédéral; d'autre part, il ne dispose pas d'un intérêt digne de protection à l'annulation ou à la modification du jugement entrepris au sens de l'art. 89 al. 1 let. c LTF (<ref-ruling> consid. 2 et 3 p. 55 ss). Il n'y a donc pas lieu d'entrer en matière sur le recours en matière de droit public.
3. A titre subsidiaire, le SPC interjette également un recours constitutionnel en faisant grief aux premiers juges d'avoir violé l'art. 9 Cst. Cette disposition prévoit le droit de toute personne à être traitée par les organes de l'Etat sans arbitraire et conformément aux règles de la bonne foi. Le recourant se réfère aussi à l'art. 29 al. 2 Cst. relatif au droit d'être entendu, sans toutefois en faire clairement un grief distinct.
3.1 Aux termes de l'art. 113 LTF, le Tribunal fédéral connaît des recours constitutionnels contre les décisions des autorités cantonales de dernière instance qui ne peuvent faire l'objet d'aucun recours selon les art. 72 à 89. D'après l'art. 115 LTF, a qualité pour former un recours constitutionnel quiconque a pris part à la procédure devant l'autorité précédente ou a été privé de la possibilité de le faire (let. a) et a un intérêt juridique à l'annulation ou à la modification de la décision attaquée (let. b). Le recours constitutionnel peut être formé pour violation des droits constitutionnels (art. 116 LTF).
3.2 La notion d'intérêt juridiquement protégé au sens de l'art. 115 al. 1 let. b LTF correspond en principe à celle qui a été définie par la jurisprudence relative à l'art. 88 OJ pour admettre la qualité pour agir par la voie d'un recours de droit public (<ref-ruling> consid. 3 p. 190 et 6.3 p. 200). Elle est étroitement liée aux motifs de recours prévus par l'art. 116 LTF, en ce sens que le recourant doit être titulaire d'un droit constitutionnel dont il invoque une violation (GIOVANNI BIAGGINI, in Commentaire bâlois, Bundesgerichtsgesetz, 2008, no 8 ad art. 115 LTF; Hansjörg Seiler, in Bundesgerichtsgesetz [BGG], 2007, no 4 ad art. 115 LTF). Il s'ensuit qu'une collectivité publique n'est en principe pas légitimée à recourir à moins, d'une part, qu'elle invoque une violation de son autonomie, de son existence ou de l'intégrité territoriale que lui garantit le droit cantonal ou, d'autre part, qu'elle agisse sur le plan du droit privé ou soit atteinte dans sa sphère privée de façon identique ou analogue à un particulier, notamment en sa qualité de propriétaire de biens frappés d'impôts ou de taxes, ou comme propriétaire d'un patrimoine financier ou administratif (<ref-ruling> consid. 1.3.1 p. 143; <ref-ruling> consid. 4.1 p. 318; <ref-ruling> consid. 2a p. 219; Seiler, op. cit., nos 5 ss ad art. 115 LTF; cf. également Biaggini, op. cit., no 20 ad art. 115 LTF). Dans ce contexte, une collectivité publique ne peut interjeter un recours constitutionnel pour se plaindre de n'avoir pas été entendue ou d'un déni de justice que si, au fond, son autonomie, son existence ou son intégrité territoriale sont en cause, ou si elle a participé à la procédure litigieuse au même titre que l'aurait fait un particulier (cf. <ref-ruling> consid. 2b p. 9; <ref-ruling> consid. 4a p. 223).
3.3 La condition de l'intérêt au recours est définie plus largement pour le recours en matière de droit public que pour le recours constitutionnel. Ce dernier ne constitue donc pas une voie de droit subsidiaire lorsque l'intérêt digne de protection à interjeter un recours en matière de droit public fait défaut, mais lorsque la recevabilité d'un tel recours doit être niée en raison des exceptions prévues par l'art. 83 LTF ou parce que la valeur litigieuse fixée à l'art. 85 al. 1 LTF n'est pas atteinte (cf. Biaggini, op. cit., no 33 ad art. 113 LTF; Seiler, op. cit., no 14 ad art. 113 LTF). En l'occurrence, il s'ensuit que le recours constitutionnel interjeté par le SPC n'est pas davantage recevable que le recours en matière de droit public. A juste titre, le SPC ne prétend pas agir comme le ferait un particulier pour défendre un intérêt privé. Il ne dispose par ailleurs d'aucune autonomie, étant un service administratif rattaché à la Direction générale de l'action sociale du canton de Genève (Département de la solidarité et de l'emploi; art. 8 al. 1 let. b du règlement sur l'organisation de l'administration cantonale, du 18 juin 2008 (ROAC; RSG B 4 05.10). Il n'est pas titulaire de droits fondamentaux au sens de l'art. 116 Cst. et ne peut donc se prévaloir d'aucun intérêt juridiquement protégé à interjeter un recours constitutionnel subsidiaire.
4. Vu le sort du recours, le canton de Genève, pour le recourant (cf. <ref-ruling> consid. 3 p. 48), supportera les frais de justice (art. 66 al. 1 LTF).

Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est irrecevable.
2. Les frais judiciaires, arrêtés à 500 fr., sont mis à la charge du canton de Genève.
3. Le présent arrêt est communiqué aux parties, au Tribunal cantonal des assurances sociales de la République et canton de Genève et à l'Office fédéral des assurances sociales.
Lucerne, le 26 mars 2009
Au nom de la Ire Cour de droit social
du Tribunal fédéral suisse
Le Président: Le Greffier:
Ursprung Métral