Tim, for what do you need to read out a full PPD and write it back? For changing the defaults one only needs to send them to CUPS as key=value pairs, the IPP equivalent of "lpadmin -p <queue> -o <option1>=<value1> -o <option2>=<value2> ...". If you need to download the PPD, modify it and upload it, take care that the full PPD gets downloaded and not only a part of it.
For globalized PPDs keep in mind that they should permanently carry all the languages in the /etc/cups/ppd/<queue>.ppd file so that if there are different users with different UI languages that everyone gets the options and choices in his UI language.
Tim, for what do you need to read out a full PPD and write it back? For changing the defaults one only needs to send them to CUPS as key=value pairs, the IPP equivalent of "lpadmin -p <queue> -o <option1>=<value1> -o <option2>=<value2> ...". If you need to download the PPD, modify it and upload it, take care that the full PPD gets downloaded and not only a part of it.
For globalized PPDs keep in mind that they should permanently carry all the languages in the /etc/cups/ ppd/<queue> .ppd file so that if there are different users with different UI languages that everyone gets the options and choices in his UI language.