the 3GPP 45.005 gives the coding of each power. If you send the coding equivalent for GSM900 29dBm, then the MS shall interpret it as 29dBm in GSM900.
If it doesn’t then there is a problem somewhere else:
the coding between DCS1800 and GSM900 is different by few dBs, check that out.
Check also the classmark of the MS, I remember the power class of the MS is indicated there, perhaps it’s something to investigate as well.
Your solution (say “31dBm” and hope the MS sends at 29dBm) is bad because you might actually miss the real problem.
So, check frequency band and classmark, check out 45.005, and it’ll be fixed.