In all honestly, I rather use buttons than generic frames to receive clicks. As I said earlier, mouse events require the frame to be "visible" already to fire, they shouldn't if they're hidden. This is just over-engineered.
It should be this simple.
Lua Code:
local function SetWidgetScript(frame,method)
for _,button in ipairs(frame.buttons) do
button:HookScript("OnMouseDown",method);
end
end