Will it ​float?

Matlab, 106 bytes

s=input('');im=~(s-32);c=bwconncomp(im,4);disp(~nnz(cellfun(@nnz,c.PixelIdxList)>3)&nnz(unique(s(~im)))<2)

The input is a matrix of characters, e.g. for the first test case:

`['$$$$$$$$';'***$$$$$';'***$$$$$';'***$$$$$';'$$$$$$$$']`

Explanation:

s=input('');           %read input
im=~(s-32);            %convert input to bw image (space = black)
c=bwconncomp(im,4);    %calculate the connected components (4 connectivity)

disp(
     ~nnz(cellfun(@nnz,c.PixelIdxList)>3) %find out whether we have components that have more at least 4 pixels
     &nnz(unique(s(~im)))<2)              %find out if we have more than 1 non-space character

APL (Dyalog Unicode), 76 bytes

{(1=≢∪' '~⍨∊⍵)∧×/5>a/⍨×a←∊g↓⍉↑(g←{⊃,/{×⊃⍵:+/⍵⋄⍵}¨⍵⊂⍨1,2{≠/0=⊃¨⍺⍵}/⍵}¨)' '=⍵}

Try it online!

Accepts input as a list of strings.

1 for floating, and 0 for sinking.

Explanation

{(1=≢∪' '~⍨∊⍵)∧×/5>a/⍨×a←∊g↓⍉↑(g←{⊃,/{×⊃⍵:+/⍵⋄⍵}¨⍵⊂⍨1,2{≠/0=⊃¨⍺⍵}/⍵}¨)' '=⍵}
                                                                      ' '=⍵ boolean array for spaces
                              (g←{⊃,/{×⊃⍵:+/⍵⋄⍵}¨⍵⊂⍨1,2{≠/0=⊃¨⍺⍵}/⍵}¨)       apply the following function g to each row:
                                                    1,2{≠/0=⊃¨⍺⍵}/⍵         get the start of each group of zeroes/nonzero values
                                                 ⍵⊂⍨                        cut the list according to that
                                     {×⊃⍵:+/⍵⋄⍵}¨                           sum each nonzero array
                                  ⊃,/                                       join all of that together
                         g↓⍉↑                                               apply g again on the transpose
                  a/⍨×a←∊                                                   flatten and remove zeroes
              ×/5>                                                          are all sums ≤ 4?
             ∧                                                              and
     ' '~⍨∊⍵                                                                the boat with spaces removed
    ∪                                                                       uniquified 
 1=≢                                                                        has only 1 element?