I think they might be too young for the concept of saving up.
. . . .
I don't want to shame them but I am troubled by the financial aspect. I had a gentle chat with them about not taking money from others because it is stealing. About not spending money we don't have. Not going shopping if we don't have the money. Not borrowing money.
Really, what your kids are too young for is to make the connections between their own concrete actions and abstract concepts like "borrowing" and "stealing." I think no matter how gently you say it, kids will freak out if they hear you think they are "stealing" -- they all know that is bad, and so therefore if you say they did that, that makes them a bad kid who might go to jail, etc. [ask my how I know ;-)]
What you need to do is to translate those big, huge, amorphous, value-laden concepts down into concrete things your kids understand. "I know you wanted mommy to be happy. But how did that make your sister feel? How would you feel if she took all of your XXX without asking? We don't take things that belong to someone else without asking." Etc.
And "borrowing" -- well, that's another fairly advanced concept. It doesn't bug me that much if a kid is trying to be generous; it's just really an opportunity to ask how they feel and praise them for being thoughtful but then sort of gently tell them not to worry, that it's the grownups' job to take care of their kids, and that some people have more or less money, but they all love their kids and the kids are safe, etc. And then when they borrow from someone else, just reinforce the need to pay it back -- again, gently -- "it was very nice of XX to lend you money to buy me a present! Now let's think about how you can earn the money to pay her back!"
I guess I'd sum it up as do some triage; limit the "teachable moments" to the things kids need to learn
right now (don't take things without asking; if you borrow something, give it back), and let them figure out the other things on their own over time (e.g., if they give all their money away to someone, they won't have it when they want to buy a toy or whatever). They are not going to get all of this right away! And that's ok! They will probably learn more by getting it wrong a time or two than if they nail it in one anyway.
"Saving for the future": again, totally an abstract concept; most young kids live entirely in the present (plus it's hard to grasp the point of saving for a toy when mom and dad may buy it for you anyway). So you need to approach this as baby steps, starting from where they are right now. For us, that was the school cafeteria: When DD walked into the school cafeteria and wanted the pizza or the chicken nuggest or all the other "cool" stuff she didn't get at home, that was immediate and real. So we started an allowance that was designed to allow her to buy lunch one or two days a week, and then gave her a way to earn about another day's lunch. That way, she learned from direct experience that if she spent the money on X, she didn't have it to spend on Y -- and she got to live with that choice, really feel it, every single day, which is of course the experience you need to figure out if your choice was the right one. Within a few weeks she had figured out that the 50-cent chips were a better deal than the $3+ lunches, and within about a month she had stopped buying almost everything except for an occasional snack. But it worked only because it was "real" and immediate to her, and not just some theoretical parental exercise that required long-term thinking that she was not yet capable of.