Collection of functions for arduino IDE
You need to "split" your library.

Placing full functions inside a header file (.h) is bad form and causes the exact problem you are seeing. Every time you include the header file you create an entirely new copy of the function. This can only work if the functions are static, which means that they exist, and are contained entirely within, the function in which the header is included in. All outside access to them is completely cut off and they become "local" to the file. That means you can have multiple copies of them in one program. However that is wasteful of space since you are duplicating your code.

Instead you need to have the code itself in a .cpp file, which gets compiled separately and then linked with your sketch at the end of compilation, and just pointers to the functions you have written in your .h file.

Utilities.h:

extern void myFunction();


Utilities.cpp:

void myFunction() {
    blah blah
}


The .h file just contains a prototype for the functions which tells the compiler that "This function is defined elsewhere. Find it later on when you link." 

It's only the .h file that is included in libraries and sketches, etc, so only the prototype that is duplicated between files. The .cpp is compiled separately and thus only compiled the once, so you don't get the code duplicated.

One caveat with this is that your sketch must include the library you have written so that the IDE knows to look for .cpp files within it to compile. And you must use #include &lt;Utilities.h&gt; for it to be able to work that out. Using a full path rather than just &lt;Utilities.h&gt; means that you break all portability and the IDE may not know to look for .cpp files in there, or even where to actually find it when compiling.  Note as well that the IDE needs to be restarted after creating a new library, which is why it may not be able to find it in your experiments.