Hi Mido,
I did a quick test and it worked ok for me.
This sounds like a time zone issue. Set a breakpoint in include LV03CF02 (form SCHEDULE_BACKWARDS):
*************************
* 4.5A delivery date & time checked by caller (which may allows
* .. a delivery o non-workin days)
* calculate transit time
CALL FUNCTION ls_current_function_module
EXPORTING
iv_calendarid = is_scheddu-transit_fc
iv_tstreamid = is_scheddu-transit_ts
iv_begin_datelocal_req = cs_schedev-lfdat
iv_begin_timelocal_req = cs_schedev-lfuhr
iv_begin_timezone = is_scheddu-transit_tz <<<<<<<<<<<<<<<
iv_end_timezone = is_scheddu-loading_tz <<<<<<<<<<<<<<<
iv_duration = is_scheddu-transit
iv_direction = gc_minus
*************************
Do you have a different value in is_scheddu-transit_tz & is_scheddu-loading_tz ?