Gary,
I have a tutorial on my web site on setting up applications with packages. A Mathematica Style. This is, I believe the standard method WRI has set up for private packages and applications.
I implemented your application and tested that it works. It took about 20 minutes. Here is the file structure used by the application.
$UserBaseDirectory/Applications/
PalmerPractice/
Kernel/init.m
DevelopmentNotebooks/TestNotebook.nb
TestPackage.m
I've attached the TestPackage.m, TestNotebook.nb and init.m notebooks. Perhaps you could set up the folder structure and then insert the notebooks.
With this structure it is not necessary to use SetDirectory. Mathematica will automatically find everything in the application. You can load the package from anywhere. Even though you have only one package, I set it up so it could accommodate a number of packages. The package is loaded with
<< PalmerPractice`
When Mathematica see that, it automatically reads the init.m file in the application, which does the actual loading of package files.
On my Windows 7, Mathematica 10.4.1 system this all works properly and it should also work on your system.
Attachments: