Is it possible to let players pick up and use certain items in Minecraft, without breaking blocks?

You can use NBT tags on a tool to allow your kids to break certain blocks with that tool

Till give you a stone pickaxe that you can use to break stone and iron ore, even if you are in adventure mode, this pickaxe will also be unbreakable, which may be good in your case:

/give @s minecraft:stone_pickaxe{Unbreakable:1,CanDestroy:["minecraft:stone","minecraft:iron_ore"]}

Use this if you want the pickaxe to break as it usually would:

/give @s minecraft:stone_pickaxe{CanDestroy:["minecraft:stone","minecraft:iron_ore"]}

This will give you a bucket that you can use to pick up water:

/give @s minecraft:bucket{CanPlaceOn:["minecraft:water"]}

And this will give you a water bucket, where you can place the water on stone

/give @s minecraft:water_bucket{CanPlaceOn:["minecraft:stone"]}

Note: Some NBT-tags on a bucket will reset after using it, so I have not found a way to get a bucket that can pick up water AND place it somewhere else

I recommend to only use the first, or second command as it seems like this works inconsistently with fluids.