So for any date in each month, you want to hack it to the 15th? I think there are built in functions for the Last and First dates of each month, but this is easy enough using the trick of converting dates to text and back again.
You're on the right track, but month() is a number, not text, as is year(), so you need to first of all make these into text using str(), then put the whole string back into date format using ctod().
ctod(str(month([Ship Date]);2;0;"0")+"/15/"+str(year([Ship Date]);2;0;"0"))
works on the ShipDate field in Lesson11 and Classic.prn from the Tutorial files.