It took longer than expected for me to get this to work.
NOTE — It only works for contours that intersect the y-axis on the right. Plotting peaks completely confuses it, so it gives the wrong result, however it does not throw any errors.
[c,h] = contourf(x, y, z, 'ShowText','off');
lc = find( (c(1,:)==Lvls(k1)) & (mod(c(2,:),1)==0) );
for k2 = 1:numel(seglen(seglenix))
lciv = lc(k2)+(1:seglen(k2));
lcvm = [c(1,lciv); c(2,lciv)];
[maxx,idxx] = max(lcvm(1,:));
ylbl(:,k1) = [Lvls(k1); lcvm(1,idxx); lcvm(2,idxx)];
text(ones(size(ylbl(1,:)))*max(xlim), ylbl(3,:), compose(' %0.2f',ylbl(3,:)), 'Horiz','left', 'Vert','middle')
I tested it with a number of functions that meet the criteria it requires, and it appears to be reasonably robust.