Command 1 (Chat):
/scoreboard objectives add dummy minecraft.used:minecraft.bucket
Command 2 (Chat):
/scoreboard objectives add dummy1 minecraft.used:minecraft.water_bucket
Command block 1 (Repeating, Always Active):
item replace entity @a[gamemode=creative,scores={dummy=1..},nbt={SelectedItem:{id:"minecraft:bucket"}}] weapon.mainhand with minecraft:water_bucket
Command block 2 (Chain, Always Active):
execute unless entity @a[gamemode=creative,scores={dummy=1..},nbt={SelectedItem:{id:"minecraft:water_bucket"}}] run item replace entity @a[gamemode=creative,scores={dummy=1..},nbt={Inventory:[{Slot:-106b,id:"minecraft:bucket"}]}] weapon.offhand with minecraft:water_bucket
Command block 3 (Chain, Always Active):
scoreboard players set @a dummy 0
Command block 4 (Repeating, Always Active):
item replace entity @a[gamemode=creative,scores={dummy1=1..},nbt={SelectedItem:{id:"minecraft:water_bucket"}}] weapon.mainhand with minecraft:bucket
Command block 5 (Chain, Always Active):
execute unless entity @a[gamemode=creative,scores={dummy1=1..},nbt={SelectedItem:{id:"minecraft:bucket"}}] run item replace entity @a[gamemode=creative,scores={dummy1=1..},nbt={Inventory:[{Slot:-106b,id:"minecraft:water_bucket"}]}] weapon.offhand with minecraft:bucket
Command block 6 (Chain, Always Active):
scoreboard players set @a dummy1 0