I've really struggled with my DD (age 6) on honesty. I'm by no means through it all yet, but I have noticed that punishing her for it makes it way worse. She just lies more to avoid getting into trouble. We've been working a lot on expressing our emotions to each other, so lately I've been trying to tie in what we've already been working on with the honesty issue, basically just talking through how I'm feeling with her. We also did a a few lessons (we're homeschooling) centered around The Boy Who Cried Wolf. I'm not sure that this is the best way to handle it, but so far it seems to be working better than other things I've tried. When I catch her, lately I've been calmly telling her something along the lines of "When you lie to me, I feel hurt and betrayed. I need to be able to trust you, and I feel sad when I don't think I can," and then I try to let it go and move on. On more than one occasion since this started she's told me something that I was unsure of the truthfulness of and I responded with "I feel sad and confused right now because I'm not sure that you're being honest with me. I want to trust you, but you've lied to me before and now trust is hard." On a few of those occasions, though I wasn't sure at first, after she reacted to me expressing my feelings on the matter, it became pretty clear that she was being honest. She felt sad that she was telling me the truth but I didn't trust her. She also brought up The Boy Who Cried Wolf after one occasion, and seemed to suddenly have a deeper understanding of the fable. She still isn't always honest, but it has gotten a lot better, and we're working on rebuilding trust. Your DS is older, but a similar strategy could be useful.
As far as the theft goes, I haven't crossed that bridge yet, and I sure hope I don't have to, but if I do, I imagine I'll probably try the same thing, with the addition of having her personally return or replace whatever was stolen.