The script checks for BoolValues and whether its true. But it only checks once, when the game starts up. When the values are later changed, it doesn't do its job and it becomes a problem. I wasn't sure how to fix this.
if val1.Value == true and val2.Value == true and val3 == true then
print("Hello")
end

2 comments
https://developer.roblox.com/api-reference/event/Instance/Changed
"if something == true then" is redundant unless the type might be something other than a boolean. Instead, use "if something then."