I know for sure it uses the KWP2000 protocol because that's what I used on my Scangauge to get tranny temp.
I think you are in deep misunderstanding...
Scangauge use general OBDII (and EOBD) application layer (SAE J1979) over KWP data layer (ISO14230-2) and not supported KWP applicaion layer (ISO14230-3)
General OBDII doesn't support any ECU programming commands.
OBDII can support modes only as follows:
$01. Show current data
$02. Show freeze frame data
$03. Show stored Diagnostic Trouble Codes
$04. Clear Diagnostic Trouble Codes and stored values
$05. Test results, oxygen sensor monitoring (non CAN only)
$06. Test results, other component/system monitoring (Test results, oxygen sensor monitoring for CAN only)
$07. Show pending Diagnostic Trouble Codes (detected during current or last driving cycle)
$08. Control operation of on-board component/system
$09. Request vehicle information
$0A. Permanent DTC's (Cleared DTC's)
Keep in mind that some ECUs
may not have support for all above modes.