I think what you're running up against is that LaTeX, by design, requires a "float" (such as a figure or table environment) to occupy no more than a single page. Page breaks within one and the same float are, by design, neither permitted nor enabled.
Rather than augment and/or rewrite substantial portions of the LaTeX kernel, you may decide to use the caption package and its "ContinuedFloat" mechanism. It won't let you create floats larger than one page, let alone provide automatic page breaking within a "float". However, it does provide a reasonably good way of dealing with figures and tables whose material simply won't fit on a single page. An example is given below.
You weren't very specific about how large the extended floats are. In the example below, I assume that the figure and its extended description take up about 1-1/4 pages in total; I've broken this up into two parts that each span slightly more than half a page. Obviously, your layout preferences and needs should dictate the final layout of these extended floats.
\documentclass[10pt,a4paper]{article}
\usepackage[english]{babel}
\usepackage[demo]{graphicx}
\usepackage{lipsum,kantlipsum} % for filler text
\usepackage{caption}
\begin{document}
\section{The beginning}
\kant[1-2]
\begin{figure}[t!]
\caption{Figure caption}\label{figurelabel}
{\centering
\includegraphics[width=0.8\textwidth]{latex_logo.png}
\par
}
\bigskip
\small
This is the figure description.
\lipsum[1-3]
\flushright \emph{(continued)}
\hrule % consider using a visual separator between float material and running text
\end{figure}
\begin{figure}[t!]
\ContinuedFloat
\caption{Figure caption, continued}
\small % use same font style as in first part of figure.
\lipsum[4-8]
\smallskip
\hrule % consider using a visual separator between float material and running text
\end{figure}
\kant[3-6]
\end{document}