We've done this exact thing for a customer with an old SX2000-SG using the Advanced ARS feature option, but we never took it all the way to the PSAP.
We of course let the call go out to the PSAP but we sent the call through a pair of E&M trunks wired back-to-back and then bridged the audio onto a Dialogic card with an old DOS based PC attached.
The PC had a very rudimentary (but always current) database of our station locations.
Using the <E> insert-calling-number feature of Advanced ARS we were able to use the dialogic card to "read" this string of DTMF digits into the PC.
The PC then did a database dip (custom program written in GWBasic) and splashed the calling extension and location info on the screen and also sent the same data out the printer port.
From there we used serial port line drivers and a 4-port sharing device to send the serial data to 4 miniature instrument printers (expensive little rascals).
The printers were located at strategic points in the building, i.e., the nurse's station, security guard's desk, etc.
We also sent the call audio to a 4204 conference bridge and pumped it to all 4 locations into an Orator amplified speaker at each desk.
That way all of our internal "first responders" could not only hear the 911 call in progress, but could also look at the tape printout from the little instrument printer to see exactly who was calling 911 and where they were calling from.
Unfortunately I have no idea how to do something like this with an old SX200D.
That's some pretty old iron
By the way, your PSAP really isn't interested in callerID.
What they're looking for is a NENA-standard data string that can be splashed against an ALI database from ENTRADO (or maybe it's INTRADO) - they're a big national 911 auto location ID database provider that most North American PSAPs use for E911 and which has nothing to do with telco-provided callerID.