A datapack is JSON in a folder, and the two things that break it are an out-of-date pack_format and a file in the wrong directory. Build the resources here, keep the pack_format matched to your target version, and copy each file into place.
Loading the workbench…
The two usual causes are a pack_format that does not match your version and files in the wrong folder. Keep pack.mcmeta pack_format matched to the target version, place functions under data/<namespace>/function, and run /reload.
It changes almost every version. The generator writes the pack.mcmeta with the pack_format for the version you select, so you do not have to look it up.
No -- datapacks are a Java Edition feature. Bedrock uses behaviour packs with a different structure. This tool targets Java datapack JSON only.
Save it as data/<namespace>/function/<name>.mcfunction, run /reload, then /function <namespace>:<name>. A function in tags/function/load.json runs automatically on load.