you have probably solved your problem, but I just went through some thing similar myself.
In my case I have a module xxx.modules.compaigns, namespace xxx.modules.compaigns. The class to be scheduled is xxx.modules.campaigns.extract. The class is in the appcode folder I went through a bunch of schedule install variations. When the scheduler could not find the class to be scheduled, it would always change "next start" time in the schedule status for this scheduler entry. When I finally go the scheduler to recognize the class and find it correctly the next start time stopped changing constantly and displayed consistently with the timing I was requesting.
I wanted timed scheduling, so I had to go the advanced host settings and change the scheduler mode to timer. Then I created the scheduler event as:
full class name and assembly: xxx.modules.campaigns.extract
schedule enabled: checked
time lapse: as desired
history: all
and hit update.
Note that I didn't put the assembly name in. Seems to me I saw this might be optional in some post someplace, but the bottom line is I couldn't figure out what the assembly name was unless I put the schedule class in a separate project and got the dll into the dotnetnuke bin directory. Then when I put in the assembly name I could get the task to run on schedule. However, when I moved the class to my dnn module the only way I could ever get it to start working was to leave off any attempt at the assembly name.
Good luck,
Jeff Landry