UPDATE: @cfr made several crucial suggestions to improve the code, and I tried to implement them. Big thanks!
As for the history: there was some typo, \makebo, I just got rid of it, and I have proposals for the two issues you mention. First, I added (assuming that these were the relevant levels, forest starts counting at 0)
if level={1}{minimum width=2.7cm,rect, inner color=col2in, outer color=col2out}{},
if level={2}{circle, inner color=col8in, outer color=col8out}{},
if level={3}{minimum width=2.7cm,rect, inner color=col2in, outer color=col2out}{},
if level={4}{diamond, inner color=col5in, outer color=col5out}{},
to make the nodes at levels 1 and 3 the same width. This also spares you from writing the same thing over and over, as in Zarko's answer.
One crucial part of my answer was and is to complexify (I don't know why the spell-checker complains about "complexify", this is a standard term in physics;-) the uppermost connections in order to cure the first issue, please see the code. I essentially discriminate between 3 rather than 2 cases. And, thanks to @cfr, I switched to a syntax that let's you sleep better at night: no \noexpand hackery, just plain forest code, just like in the forest library edges, which I used as a basis (but is not necessary to load here). For the left two connections I start east, the middle two south and the remaining two east.
\documentclass[border=5pt]{standalone}
\title{The Forest Project}
\usepackage{forest}
\usetikzlibrary{arrows.meta, shapes.geometric, calc, shadows.blur}
\forestset{
declare dimen={crazy sep}{-10pt},
crazy edge'/.style={
edge path'={[color=linecol, rounded corners=5pt, -{Stealth[length=10pt]}, line width=1pt]
(!u.parent anchor) -- +(0,\forestoption{crazy sep}) -| (.child anchor)},
},
crazy edge/.style={
on invalid={fake}{!parent.parent anchor=children},
child anchor=parent,
crazy edge',
},
crazy edges/.style={for nodewalk={#1}{crazy edge}},
crazy edges/.default=tree,
}
\colorlet{mygreen}{green!75!black}
\colorlet{col1in}{red!30}
\colorlet{col1out}{red!40}
\colorlet{col2in}{mygreen!40}
\colorlet{col2out}{mygreen!50}
\colorlet{col3in}{blue!30}
\colorlet{col3out}{blue!40}
\colorlet{col4in}{mygreen!20}
\colorlet{col4out}{mygreen!30}
\colorlet{col5in}{blue!10}
\colorlet{col5out}{blue!20}
\colorlet{col6in}{blue!20}
\colorlet{col6out}{blue!30}
\colorlet{col7out}{orange}
\colorlet{col7in}{orange!50}
\colorlet{col8out}{orange!40}
\colorlet{col8in}{orange!20}
\colorlet{linecol}{blue!60}
\begin{document}
\pgfkeys{/forest,
rect/.append style={rectangle, rounded corners=2pt, inner color=col6in, outer color=col6out},
ellip/.append style={ellipse, inner color=col5in, outer color=col5out},
orect/.append style={rect, font=\sffamily\bfseries\LARGE, text width=325pt, text centered, minimum height=10pt, outer color=col7out, inner color=col7in},
oellip/.append style={ellip, inner color=col8in, outer color=col8out, font=\sffamily\bfseries\large, text centered},
}
\begin{forest}
for tree={
font=\sffamily\bfseries,
line width=2pt,
draw=linecol, % adds the border to all boxes
align=center,
child anchor=north,
parent anchor=south,
blur shadow,
l sep+=12.5pt,
s sep=0.1cm,
crazy edges,
if level={1}{minimum width=2.7cm,rect, inner color=col2in, outer color=col2out}{},
if level={2}{circle, inner color=col8in, outer color=col8out}{},
if level={3}{minimum width=2.7cm,rect, inner color=col2in, outer color=col2out}{},
if level={4}{diamond, inner color=col5in, outer color=col5out}{},
if level={1}{
if n<={2}{
edge path'={
[color=linecol, rounded corners=5pt, -{Stealth[length=10pt]}, line width=1pt]
(!u.west) -| (.child anchor)
}
}{if n<={4}{
edge path'={
[color=linecol, rounded corners=5pt, -{Stealth[length=10pt]}, line width=1pt]
(!u.south) -| (.child anchor)
}
}{
edge path'={
[color=linecol, rounded corners=5pt, -{Stealth[length=10pt]}, line width=1pt]
(!u.east) -| (.child anchor)
},
}}
}{},
}
[Full Data Set, ellipse, inner color=col1in, outer color=col1out
[Middle,
[CFA
[Middle
[LR]
]
]
]
[Bottom Support
[CFA
[Bottom Support
[LR]
]
]
]
[Bottom Carry
[CFA
[Bottom Carry
[LR]
]
]
]
[Bottom Other
[CFA
[Bottom Other
[LR]
]
]
]
[Top
[CFA
[Top
[LR]
]
]
]
[Jungle
[CFA
[Jungle
[LR]
]
]
]
]
\end{forest}
\end{document}
