Dallas Temp Reading Issues
You have identified two issues:
1: The temperature reading appears high by a fairly consistent amount.
2: The temperature varies around the anticipated level.
I looked at the datasheet for the sensor. For 70 degrees F (~21 Degrees C) the typical error is 0.2 degrees C low. At 3 standard deviations the temperature error ranges from a +0.05 degrees to a -0.45 degrees, both in C. Your unit may be functionally out of spec. If you have a second unit you might try to compare the two.
If temperature accuracy is important, I'd calibrate the unit by placing it in a small foam container with a low wattage lamp. Insert an accurate temperature gauge, like a multimeter thermocouple or a photography type thermometer. Adjust the lamp, by varying the voltage to achieve a stable temperature, so as to correct for differences in heat sinking between the Dallas unit and the thermometer. Run this process with a range of temperatures to achieve a scale of error.
This error can be corrected in the PIC software. If the error is linear, it might simply mean adjusting the Dallas read value by a fixed amount.
The short-term shift is another issue. There may be some short term heating of the Dallas unit when it operates. More likely, the small shifts may reflect convective activity in the room. One way to reduce this is by adding mass to the sensor to reduced the response rate. A small heat sink could be placed over the sensor. In my hot air balloons I add a piece of shrink wrap tubing over the sensor to reduce the effect of the sudden convection caused by firing the balloon burner.
There may be fundamental measurement issues here. The fact the sensor can resolve to a 0.1 degree doesn't mean it is accurate at that level. As noted above the error can be a much as half a degree and still be in factory spec. There are other issues like linearity and repeatability that arise. For example: Suppose you have an ice water bath at 0 degrees C. If you drop the sensor into the water will it read 0.00 degrees? If you now let the sensor warm up to room temperature and drop it back in the water bath does its reading return to the same exact reading you saw before?
I doubt that an inexpensive, mass produced, temperature sensor should be expected to accurately read to 0.1 degrees.