In the version using plot(), you are telling MATLAB to place the plot marker at different x locations, but in the version using candle(), you are not specifying different dates to place the plot markers, so they just overlap. You need to use the 6-argument version of candle(), something like
candle(open(f,4),high(f,3),low(f,5),close(f,2),'b',date(f),Dateform)
as described in the documentation:
doc candle
I don't have the Finance Toolbox, so I may not have that quite right, but I think that is the gist of your problem.